82
에서 '약한'와 '할당'의 차이점은 무엇 뭐죠이 차이 :위임 속성 선언
@property (nonatomic, weak) id <SubClassDelegate> delegate;
이 :
@property (nonatomic, assign) id <SubClassDelegate> delegate;
내가 명 규모의 건물을 사용하고 싶습니다.
에서 '약한'와 '할당'의 차이점은 무엇 뭐죠이 차이 :위임 속성 선언
@property (nonatomic, weak) id <SubClassDelegate> delegate;
이 :
@property (nonatomic, assign) id <SubClassDelegate> delegate;
내가 명 규모의 건물을 사용하고 싶습니다.
weak
과 assign
사이의 유일한 차이점은 객체가 weak
특성 포인트가 해제되는 경우 쓰레기를 액세스하는 위험을 실행하지 않도록, 다음 weak
포인터의 값이, nil
로 설정 될 것입니다. assign
을 사용하면 그럴 수 없으므로 오브젝트가 사용자로부터 할당 해제되고 액세스하려고하면 가비지에 액세스하게됩니다.
Objective-C 개체의 경우 weak
을 사용할 수있는 환경에 있으면 사용해야합니다.
왜 Cocoa Touch 프레임 워크 클래스 중 일부는 여전히 델리게이트에 assign을 사용하고 있는지 알고 있습니까? 예를 들어 [UISearchDisplayController] (https://developer.apple.com/library/ios/documentation/UIKit/Reference/UISearchDisplayController_Class/Reference/Reference.html#//apple_ref/occ/instp/UISearchDisplayController/delegate)의 대리인은 [ 여전히 할당됩니다. 왜 그것은 지금까지 업데이트되지 않았습니까? – Pwner
@Pwner는 iOS 8.0에서 더 이상 사용되지 않는 것처럼 보입니다. – Stavash
다음은 비추천되지 않는 예제입니다 : 심지어'UITableView'는 델리게이트에 대해'assign'을가집니다 : @property (nonatomic, assign) id 델리게이트; –