본문 바로가기

iOS/스터디

(3)
[Swift] 순환참조에 대해 알아보자 (feat. strong, weak, unowned reference) 순환 참조란 두 가지 이상의 객체가 서로에 대한 Strong Reference(강한 참조) 상태를 가지고 있을 때 발생하며, 순환 참조가 발생하게 되면 서로에 대한 참조가 해제되지 않기 때문에 메모리에서 유지되며 이로 인해 메모리 릭이 발생하게 된다. 이러한 순환 참조를 해결하기 위해 weak, unowned reference가 사용된다. ☞ 클로저에서의 weak self 1. 하나의 인스턴스에 대한 참조 먼저, 다음과 같이 Person 클래스를 만들어 보자. import UIKit class Person { let name: String init(name: String) { self.name = name print("\(name) is being initialized") } deinit { print(..
[Swift] 클로저에서의 weak self 에 대해 알아보자 클로저를 사용하면서 weak self를 사용해본 경험이 있거나, weak self를 사용하는 코드를 본 적이 있을 것이다. weak self 를 왜 사용해야 하고, 언제 사용해야 하는지에 대해 알아보자. 1. weak self를 왜 사용하는가? Weak reference(약한 참조)는 Retain Cycle(순환 참조)로 인한 메모리 릭을 벗어나기 위해 사용한다. Swift가 Automatic Reference Counting(ARC)를 사용하면서 대두분의 참조 문제를 해결해주지만, 두 가지 이상의 객체가 서로에 대한 Strong Refrence(강한 참조) 상태를 가지고 있다면 Retain Cycle이 발생하게 되며 이때, 메모리 릭이 발생한다. 메모리 릭이 발생한다면, 앱에서 Out Of Memory..
[Swift] 코코아팟(CocoaPods) 라이브러리를 만들어 보자 직접 라이브러리를 만들어 코코아팟(cocoapods)으로 배포하는 방법에 관한 포스트입니다. 1. 라이브러리 프로젝트 생성 먼저, 터미널을 열고 프로젝트를 생성하고 싶은 위치로 이동합니다. 그 후 터미널에 $ pod lib create [프로젝트명] 을 입력하여 프로젝트를 생성해줍니다. 그후 터미널에서 보여지는 몇가지 질문에 답을 해주면 됩니다. * 이 부분은 iOS, macOS중 어느 라이브러리를 만드냐에 따라 질문이 달라집니다. 먼저, iOS용 라이브러리를 만들 경우에는 다음의 질문에 자신의 상황에 맞게 답변해주시면 됩니다. - 어떤 플랫폼으로 만들꺼니? - 어떤 언어 사용할거니? - 라이브러리에 데모용 앱 넣을꺼니? - 어떤 테스팅 프레임워크 사용할꺼니? - view기반 테스팅 할꺼니? macOS용..