iOS16 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. 3단계: Entity정의 서버로부터 검색한 결과를 받아오면 내게 필요한 정보는 물론이고, 필요하지 않은 정보들도 들어있기 마련이지. 내가 사용할 Data를 뽑아줘야겠지? 이걸 구조체로 만들건데, Domain Layer에서는 Entity라는 이름으로, UI Layer에서는 ViewModel 이라는 이름으로 만들거야. 이건 그냥 내가 사용하는, 그리고 지금 우리팀에서 정한 Naming 규칙이기 때문에 자유롭게 하면 되는거지. 하지만! 여기서 중요한 것은 도메인의 모델과, UI의 모델이 분리되어 있다는 거야. 하나의 데이터 타입을 정의해서 모든 Layer에서 사용하는 것도 물론 장점이 있지. 각 Layer를 분리하고, 각 Layer 간에는 primitive type으로 데이터를 전달하는 것이 Layer들 사이에 Dependency를 .. 2022. 3. 22. [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. 이전 1 2 3 4 다음