2012-04-16 6 views

답변

1

첫 번째 구문은 현대 Objective C 런타임 시스템의 기능에 의존하여 속성 정의에서 해당 변수를 만듭니다. 따라서 두 번째 구문은 이전 런타임 시스템에서 사용 된 Objective C 2.0 구문입니다.

후자의 경우에 변수가 바르입니다 :

this post from S.O.

편집에서보세요.

속성 정의는 처음에는 적절한 메모리 관리 기능을 사용하여 ivar에 대한 접근 자 메서드를 정의하는 짧은 방법이었습니다. 최신 런타임 시스템은 ivar을 선언 할 필요성을 완화하고 속성 정의만으로 갈 수 있습니다 (속성 할당과 관련된 값을 저장하기위한 메모리 할당을 의미 함).

새로운 런타임 시스템에서는 인터페이스의 관점에서 언급 한 두 구문간에 차이가 없습니다. 이제 런타임 시스템이 두 가지 다른 방식으로 처리하는 경우 런타임 시스템 소스 코드에서 구현을 검사하여 설명 할 수 있습니다. 내 생각 엔 그 수준에서도 차이가 없다는 것입니다.

+0

도움을 주셔서 감사합니다. 그래서 후자의 경우 괄호 안에있는 변수는 ivar입니까? 그것은 속성과 분리되어 생성 되었습니까? 아니면 둘 다 동일한 것을 가리 킵니까? –

+0

제발, 제 편집 참조 ... – sergio

3

두 번째 인스턴스 변수는 unit이고 첫 번째 인스턴스 변수는 없습니다.

Xcode 구성 도우미의 문서 탭에있는 "Objective-C 프로그래밍 언어"를 읽어보십시오.

관련 문제