[objective-c] 위임 속성 선언에서 ‘약함’과 ‘할당’의 차이점은 무엇입니까?

이것의 차이점은 무엇입니까?

@property (nonatomic, weak) id  <SubClassDelegate> delegate;

이:

@property (nonatomic, assign) id  <SubClassDelegate> delegate;

대리인에게 속성을 사용하고 싶습니다.



답변

유일한 차이점 weakassign객체 경우이다 weak속성 포인트가 해제되는 다음의 값 weak포인터로 설정 될 것입니다 nil당신이 쓰레기를 액세스하는 위험을 실행하지 않도록. 를 사용 assign하면 그렇게되지 않으므로 객체가 아래에서 할당 해제되고 액세스하려고하면 쓰레기에 액세스하게됩니다.

Objective-C 객체의 경우를 사용할 수있는 환경에 weak있으면이를 사용해야합니다.


답변