Objective-C에서 한 개체를 다른 개체의 속성으로 사용하는 경우 @synthesize
을 사용하면 개체가 자동으로 초기화됩니까?다른 객체의 합성 속성 인 경우 객체가 자동으로 초기화됩니까?
답변
여전히 초기화해야합니다.
-(MyPropertyClass*)propertyName {
if(!propertyIvarName) {
_propertyIvarName = [[MyPropertyClass alloc] init];
}
return propertyIvarName;
}
을하거나 @synthesize는 초기화하는 방법을 알고하지 않습니다 viewdidload
이 패턴은 속성을 nil로 설정할 수 없기 때문에 위험 할 수 있습니다. –
여러 스레드에서 속성을 호출하면 문제가 발생할 수도 있습니다. –
'viewDidLoad'는보기가 아닌 것들에는 적용되지 않습니다 ... – Dave
번호의 속성을 초기화하기 : 게으른 초기화를 사용해보십시오. 간단한 -init
?
참조 개체의 -init…
에 할당하고 초기화 할 수 있습니다.
@synthesize
을 사용하면 자동으로 초기화됩니까?
가 네,이 nil
으로 초기화된다 (실제 객체가 가 할당되지, 그러나 -이 단어의 C의 의미에서 포인터 초기화되면, init
메서드가 호출 하지입니다). 모든 인스턴스 변수, 심지어 해당 @property
이없는 것들, 자동 (객체의 경우) 중 하나 nil
으로 초기화되어, NULL
-
, 당신도이 동작을 달성하기 위해 @synthesize
필요 없어 (다른 포인터의 경우) 또는 0
(정수 및 부동 소수점의 경우) Objective-C 런타임에 의해 수행됩니다.
의 그것을 시도하자
@interface TypicalObject : NSObject
@property (nonatomic) NSNumber *numberProperty;
@end
@implementation TypicalObject
@synthesize numberProperty;
@end
...
TypicalObject *object = [[TypicalObject alloc] init];
NSLog(@"object.numberProperty = %@", object.numberProperty);
로그 문 수율 :
object.numberProperty = (null)
그래서, 아니, 속성은 자동 인스턴스화하지 않습니다. 그러나 모든 오브젝트 인스턴스 변수는 nil
으로 시작합니다.
- 1. 다른 객체의 속성 인 객체의 유형을 가져옵니다.
- 2. 객체가 제어기보다 각도 지시문에서 다르게 초기화됩니까?
- 3. 다른 객체가 그것을 참조하는 경우 객체의 삭제를 거부하십시오.
- 4. f 내의 합성 속성 : 다른 합성 구성 요소의 facets 태그
- 5. 불변 객체의 길이 속성
- 6. @ 클래스 객체의 배열을 합성 하시겠습니까?
- 7. 동작 MutableCopy 객체가 Nil 인 경우
- 8. 한 객체의 배경색을 설정하면 다른 객체가 변경됩니다.
- 9. @ 합성 속성 및 KVC
- 10. 링크 객체가 nil 인 경우 link_to
- 11. 객체의 속성
- 12. 하위 속성 변경시 합성 속성 업데이트 바인딩
- 13. 다른 클래스에서 객체의 속성 가져 오기 C++
- 14. 객체의 arraylist에서 객체의 속성 얻기
- 15. 객체가 같은 경우 NSMutableArray에서 객체의 색인을 확인하는 방법은 무엇입니까?
- 16. dlopen()이 반환되기 전에 동적으로로드되는 라이브러리의 정적 C++ 객체가 초기화됩니까?
- 17. # 다른 객체의 자식 인 객체 찾기
- 18. 오브젝티브 C : 저장된 객체의 인스턴스 변수에 대응하는 포인터 인 경우
- 19. 부스트 스피리트 합성 속성 혼동
- 20. 객체가 null 인 경우 Groovy에서 객체의 속성을 설정하는이 코드를 어떻게 단순화합니까?
- 21. 체크 객체가 null의 경우
- 22. int는 항상 0으로 초기화됩니까?
- 23. 다른 객체의 테이블 인 Oracle 객체의 행 읽기
- 24. 객체가 레일에서 객체의 배열에있는 경우 내가이 일을 해요
- 25. 합성 된 속성 및 ivar 오류
- 26. javascript 객체의 속성 찾기
- 27. AVPlayerViewController에 자동으로 AVPlayer 객체가 있습니까?
- 28. enum의 변수는 항상 초기화됩니까?
- 29. 장고 속성이 booelan 속성 인 경우
- 30. ID가 해당 속성 인 경우 집합을 필터링합니다.
개체를 포인터로 저장해야합니다.이 포인터는 'nil'로 초기화됩니다. – Dave