iOS/기초9 Swift strong, weak, unowned Strong 해당 인스턴스의 소유권을 가짐 자신이 참조하는 인스턴스의 retain count를 증가시킴 값 지정시점에 retain이 증가되고 참조가 종료되는 시점에 release됨 선언할 때 아무것도 적지 않으면 기본적으로 stong임 Weak 해당 인스턴스의 소유권을 가지지 않고, 주소값만을 가지고 있는 포인터 개념 자신이 참조하는 인스턴스의 retain count를 증가시키지 않고, release도 발생하지 않음 자신이 참조하는 하지만 weak 메모리를 해제시킬 수 있는 권한은 다른 클래스에 있다. 메모리가 해제될 경우 자동으로 레퍼런스가 nil로 초기화 해준다. Weak 속성을 사용하는 객체는 항상 optional 이어야한다. Unowned 해당 인스턴스의 소유권을 가지지 않는다. 자신이 참조하는 .. 2022. 4. 26. ARC (Auto Reference Counting), Garbage Collection 차이 ARC Auto Reference Counting 자동으로 메모리 관리해주는 친구 객체에 대한 참조 카운트를 관리하고 0이되면 자동으로 매모리 해제 Build time에 실행됨 Garbage Collection Garbage Collector가 존재 런타임에 Collector가 더이상 사용이 필요하지 않는 것들을 메모리에서 해제 동작 원리 Garbage Collection Root : 힙 외부에서 접근할 수 있는 변수/object Mark : Root로 부터 참조로 연결된 모든 오브젝트를 mark 하는 행위 Sweep : mart되지 않은 모든 객체를 해제(reclaim) 요약 : Root로부터 Unreachable한 모든 객체를 메모리에서 해제하는 방식 ARC와 Garbage Collection과의 차.. 2022. 4. 24. [iOS] Cosmos를 이용한 앱 별점 구현 별점주기를 쉽게 구현할 수 있도록 해주는 라이브러리가 있다. Cosmos 1. 설치 나는 주로 Pod을 사용하니까 Podfile을 열고 아래를 입력한다. pod ‘Cosmos’, ‘-> 23.0’ pod update로 업데이트 해주면 끝. 2. 사용 스토리보드에서 별점을 적용할 View 하나를 추가하고, Class명에 CosmosView. Module에 Cosmos를 입력한다. 이 View를 ViewController에 “starView”라는 이름의 Outlet변수로 등록하고 ViewContoller에 아래 3가지를 구현한다. - import Cosmos - starView.rating = 4 - starView.text = “(1.2만명)” 여기까지만 해도 잘 출력되는걸 볼 수있다. 3. 추가설정 st.. 2022. 3. 22. URLSession 사용하기 Apple AppStore에서 app을 검색할 때 호출할 수 있는 함수. 아래처럼 사용하면 되겠다. import Foundation import ReactiveSwift class ITunesAPIDataSource: ITunesAPIInterface { let session = URLSession.shared func getAppList(key: String) -> SignalProducer { return SignalProducer { observer, lifetime in guard !lifetime.hasEnded else { observer.sendInterrupted() return } guard let url = self.buildUrl(term: key) else { observer.sen.. 2022. 3. 21. 이전 1 2 3 다음