개발자를 위해 Xcode 베타를 사용하고 있으며 미묘한 차이가 있음을 알고 있습니다. 그중에는 선언 된 속성에 대한 새로운 속성이 있습니다.
@property(strong)IBOutlet NSArrayController *arrayControl;
내 질문은 : 강한 속성은 무엇을 의미합니까 ?? 이전 버전을 대체합니까, 아니면 완전히 새로운 것입니까? Google과 개발자 문서를 검색했지만 아무것도 찾을 수 없었습니다. 그것이 무엇인지 알 때까지 나는 그것을 사용하는 것을 주저합니다.
미리 감사드립니다
답변
Objective-C ARC (Automated Reference Counting)의retain
일부로 속성을 대체합니다 . 비 ARC 코드에서는 .retain
답변
강력한 참조는 할당 취소를 중지하는 개체에 대한 참조입니다. 즉, 소유자 관계를 생성합니다. 이전에는 다음과 같이했습니다.
**// Non-ARC Compliant Declaration
@property(retain) NSObject *obj;**
ARC에서 우리는 클래스 인스턴스가 참조 된 객체에 대한 소유권을 가지도록하기 위해 다음을 수행합니다 (즉, 소유자가 될 때까지 할당 해제 될 수 없음).
**// ARC Compliant Declaration
@property(strong) NSObject *obj;**
답변
아시다시피 iOS 5의 ARC 기반 프로젝트에서는 어떤 개체도 해제 할 수 없습니다. 따라서 나중에 사용할 개체를 유지하고 ARC가 메모리에서 개체를 제거하지 않도록하려면 다음을 설정합니다. 개체의 속성을 “강함”으로 지정합니다.