1
속성을 만들고 컴파일러가 기본 ivar를 자동으로 합성 할 때 ivar에 동일한 보유 의미가 있습니까? 아니면 보유 의미가 "setter"에만 적용됩니까?합성 된 ivar의 보유 의미는 무엇입니까?
@property (nonatomic, strong) NSObject *strongObject
@property (nonatomic, weak) NSObject *weakObject
_strongObject = [[NSObject alloc] init]; // is this strong?
_weakObject = [[NSObject alloc] init]; // is this weak?
따라서 복사 의미가있는 직접 ivar 할당이 실제로 사본을 작성한다는 의미입니까? 이 예제를 보자 :'@property (nonatomic, copy) NSString * myString;'사용자 정의 setter는'if (_myString == nil) _myString = @ "A"; return _myString;' – Steveo
흠. 이상하게 보입니다 (특히 setter의 return 문).하지만 아니요, 명시 적으로 복사해야합니다. ARC는 복사 작업이 아닌 보관 횟수를 처리합니다. – Merlevede
제 잘못입니다. return 문은 거기에 없어야합니다. – Steveo