본문 바로가기
반응형

전체 글44

[Swift] 스위프트 메모리 관리 이번 게시글에서는 스위프트에서 메모리 관리에 대해서 알아보겠습니다. 메모리 관리와 ARC (Automatic Reference Counting) 스위프트에서 메모리를 관리하는 방법 중 하나는 ARC, 즉 Automatic Reference Counting입니다. 이것은 클래스 인스턴스를 더 이상 사용하지 않을 때 자동으로 메모리에서 해제해주는 기술입니다. ARC는 참조 카운트(Reference Count)를 사용하여 객체의 생존 주기를 관리합니다. 참조 카운트와 메모리 해제 참조 카운트는 현재 인스턴스를 참조하고 있는 개수를 나타냅니다. 참조 카운트가 0이 되면 해당 인스턴스는 더 이상 필요하지 않다는 것을 의미하며, 메모리에서 자동으로 해제됩니다. 참조 카운트는 증가하고 감소할 수 있습니다. 참조 카운.. 2023. 10. 26.
[Swift] deinitializer 활용 이번에는 deinitializer가 사용되는 사례에 대해서 알아보려고 합니다. [deinit] deinit은 인스턴스가 메모리에서 해제되기 직전에 호출됩니다. 인스턴스를 해제하기 전에 선행되어야 하는 작업이 있다면 deinit에 구현할 수 있습니다. deinit을 사용하여 파일 핸들을 관리하는 예시 코드를 살펴보겠습니다. class FileHandler { let fileHandle: FileHandle init(filePath: String) { // 파일이 없으면 파일을 생성하고 파일 핸들을 엽니다. if !FileManager.default.fileExists(atPath: filePath) { FileManager.default.createFile(atPath: filePath, contents:.. 2023. 10. 26.
[Swift] 클로저의 Escaping과 Capture List 안녕하세요. 클로저를 공부하게 되면서 클로저의 Escaping과 Capture List에 대한 내용을 정리해보려고 합니다. [클로저의 Escaping] 클로저의 escaping 이란 어떤 함수에서 인자 값으로 클로저를 전달을 받을 때 이 클로저가 함수가 종료된 후에도 클로저를 호출할 수 있는 경우에 escaping이라고 합니다. func downloadImage(imageURL: URL, completionHandler: @escaping (UIImage?) -> Void) { let task = URLSession.shared.dataTask(with: imageURL) { data, response, error in if let data = data, let image = UIImage(data: d.. 2023. 10. 24.
[Swift] 상수와 변수 Swift에서는 상수와 변수를 제공하고 있습니다. [상수] let 키워드를 사용하여 값을 저장할 수 있지만, 한 번 저장된 값을 다른 값으로 변경할 수 없습니다. let str = "A" str = "B" // cannot assign to value: 'str' is a 'let' constant 상수로 선언된 "str"을 값으로 변경하려고 하면 에러가 발생합니다. 값을 변경할 수 없는 상수 "str"의 값을 변경하려고 하기 때문입니다. 값을 변경하고 싶을 때에는 "str"상수를 변수로 변경해야 합니다. [변수] var 키워드를 사용하여 값을 저장하고, 다른 값으로 변경이 가능합니다. var str = "A" print(str) // "A" str = "B" print(str) // "B" 변수는 값을.. 2023. 10. 23.
반응형