본문 바로가기
[Objective-C] 기타 [Objective-C] 기타 출처 : OS X 구조를 이해하면서 배우는 Objective-C 부록A. Foundation 프레임워크 개요 * A.1 주요 클래스 개요 -NSCountedSet : 변경 가능한 집합의 클래스, 같은 객체를 여러 번 포함할 수 있다.NSOrderedSet, NSMutableOrderedSet : 여러 객체를 배열처럼 순서대로 저장하는데 같은 객체는 하나만 저장NSIndexSet, NSMutableIndexSet : 배열의 인덱스로 사용하는 음수가 아닌 정수를 요소로 하는 집합. NSSet 과 상속 관계가 없다. -NSProcessInfo : 프로세스에 관련된 다양한 정보를 취득한다. * A.2. 주요 프로토콜 개요 * A.3. 주요 함수와 형식 -CGRectGetHeight.. 2018. 1. 12.
[ios] ARC 와 Toll-free bridging [ios] ARC 와 Toll-free bridging Toll-Free Bridging -ARC 는 Objective-C 의 Object 만을 대상으로 한다.Core Foundation 범주의 Object 들은 대상이 아니다. -Core Foundation API 를 사용할 경우 개발자가 수동으로 메모리 관리를 해야 한다.CoreFoundation Objective-C 클래스간의 타입 캐스팅을 할 수 있으며,이 때 아무런 cost 없이 작업을 할 수 있다 하여 Toll-Free bridging 이라고 부른다. -Toll-Free bridging 을 할 때 주의할 점은 메모리관리 주체를 이전하느냐 마느냐이다. __bridge -Objective-C Object Core Foundation 변환하고 싶을 .. 2017. 10. 29.
[Effective Objective-C] #49 커스텀 메모리 관리 시맨틱을 가진 컬렉션을 만들기 위해 무비용 전환을 사용하라 [Effective Objective-C] #49 커스텀 메모리 관리 시맨틱을 가진 컬렉션을 만들기 위해 무비용 전환을 사용하라 출처 : Effective Objective-C -NSArray 는 배열을 위한 Foundation 의 오브젝티브-C 클래스이다.그리고 CFArray 는 CoreFoundation 의 배열을 위한 것이다.배열을 생성하는 이 두 가지 방법은 별개로 보이지만 무비용 전환이라는 강력한 기능 덕에 이 두 클래스 간 캐스팅을 아주 긴밀하게 할 수 있다. -무비용 전환으로 Foundation 의 오브젝티브-C 클래스와 CoreFoundation 의 C 데이터 구조체 간에 캐스팅을 할 수 있다.나는 C 수준 API를 클래스나 객체가 아닌 데이터 구조체라고 부른다.그것들은 오브젝티브-C 의 .. 2017. 10. 17.
[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #25 ~ #32 [Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #25 ~ #32 출처 : Effective Objective-C #25 : 서드 파티 클래스에는 반드시 카테고리 이름을 접두어로 붙이라 자신이 소유하지 않은 클래스에 카테고리를 추가할 때는 항상 카테고리 이름에 접두어를 붙이라. 자신이 소유하지 않은 클래스에 카테고리를 추가할 때 카테고리의 메서드에도 접두어를 항상 붙이라. #26 : 카테고리에는 프로퍼티를 사용하지 말라 데이터를 캡슐화하는 모든 프로퍼티 선언은 메인 인터페이스 파일에서 하라. 클래스 확장 카테고리를 제외하고 카테고리 내에 프로퍼티를 선언하기보다는 접근자 메서드를 사용하라. #27 : 클래스 확장 카테고리를 이용해 상세.. 2017. 9. 26.
[Effective Objective-C] #31 참조를 릴리스하고 관찰 상태(observation state)를 정리하는 일은 dealloc 메서드에서만 하라 [Effective Objective-C] #31 참조를 릴리스하고 관찰 상태(observation state)를 정리하는 일은 dealloc 메서드에서만 하라 출처 : Effective Objective-C -생애 주기가 끝난 객체는 할당 해제되고 dealloc 메서드가 호출될 것이다.이 메서드는 객체의 생애 주기 동안 리테인 수가 0으로 떨어질 때 딱 한 번 호출된다.호출되는 시점은 보장되지 않는다. 그렇지만 리테인과 릴리스가 있는 코드를 살펴보고 언제 호출될지 예상할 수 있다고 생각할 수도 있다.그러나 실제로는 여러분이 모르는 사이에 어떠한 라이브러리라도 객체를 조작할 수 있다.이는 예정되지 않는 시점에 할당 해제가 일어나게 하는 원인이 될 수 있다. -절대로 dealloc 을 직접 호출하면 안 된.. 2017. 9. 24.
[Effective Objective-C] #30 ARC 를 사용하여 reference count 를 쉽게 만들라 [Effective Objective-C] #30 ARC 를 사용하여 reference count 를 쉽게 만들라 출처 : Effective Objective-C -Clang 컴파일러 프로젝트(맥 OS X 와 iOS 개발에 사용되는 컴파일러 프로젝트)는 문제가 있는 참조 세기의 위치를 가리킬 수 있게 정적 분석기를 도입했다.이 정적 분석기를 통해 메모리 누수가 있다고 알려줄 수 있다.어디에 메모리 관리 문제가 있는지도 알려줄 수 있다.이것이 ARC 가 만들어진 배경이다. -ARC 는 이름이 말하는 그대로의 일을 한다.즉 reference counting 을 자동으로 한다.그래서 이전 코드 조각에서는 release 등을 써 주던 것을 이제는 하지 않아도 ARC 가 알아서 추가해준다. -ARC 를 사용할 때.. 2017. 9. 23.
[iOS] __bridge 와 __bridge_transfer [iOS] __bridge 와 __bridge_transfer http://stackoverflow.com/questions/17544765/when-to-use-bridge-transfer-and-bridgehttps://soulpark.wordpress.com/2013/07/25/ios-arc-from-top-developer/ -__bridge 와 __bridge_transfer 는 ARC 에게 소유권 처리에 대해 알리는 keyword 이다.보통 non-objective-c pointer 에 붙어서 사용된다. -__bridge 는 ARC 에게 해당 포인터에 대해 소유권을 갖지 말라고 알려주는 것이다.이렇게 마킹한 녀석은 사용자 측에서 알아서 free 나 CFRelease 등을 사용해서 메모리 해제를.. 2017. 6. 21.
[iOS Study] 연락처 프로그래밍 가이드 in iOS - Direct Interacting [iOS Study] 연락처 프로그래밍 가이드 in iOS - Direct Interacting https://developer.apple.com/library/ios/documentation/ContactData/Conceptual/AddressBookProgrammingGuideforiPhone/Chapters/DirectInteraction.html -address book 은 유저의 정보이기 떄문에 다룰 때 주의해야 한다.보통 변경사항에 대해 user 에게 confirm 을 받는다.group 에 대해서도 마찬가지이다. -record 에는 id 가 있는데, 이 id 를 오랫동안 잡고 있는 것은 정확성이 떨어질 수 있다.그래서 이 id 와 pair 로 name 을 가지고 있어서, operation 을.. 2017. 6. 20.
[iOS Study] 연락처 프로그래밍 가이드 in iOS - BaseObjects [iOS Study] 연락처 프로그래밍 가이드 in iOS - BaseObjects https://developer.apple.com/library/ios/documentation/ContactData/Conceptual/AddressBookProgrammingGuideforiPhone/Chapters/BasicObjects.html#//apple_ref/doc/uid/TP40007744-CH3-SW1 -Address Book database 를 확실히 이용하기 위해서는 4가지 요소를 잘 알아두어야 한다. 1. Address books2. Records3. Single-value properties4. Multi-value properties Address Books -ABAddressBookRef in.. 2017. 6. 19.
반응형