Sự khác biệt giữa điều này là gì:
@property (nonatomic, weak) id <SubClassDelegate> delegate;
và điều này:
@property (nonatomic, assign) id <SubClassDelegate> delegate;
Tôi muốn sử dụng tài sản cho các đại biểu.
Câu trả lời:
Sự khác biệt duy nhất giữa weakvà assignlà nếu đối tượng mà một thuộc weaktính trỏ đến được phân bổ, thì giá trị của weakcon trỏ sẽ được đặt thành nil, để bạn không bao giờ gặp rủi ro khi truy cập vào rác. Nếu bạn sử dụng assign, điều đó sẽ không xảy ra, vì vậy nếu đối tượng được phân bổ từ bên dưới bạn và bạn cố gắng truy cập nó, bạn sẽ truy cập rác.
Đối với các đối tượng Objective-C, nếu bạn đang ở trong một môi trường mà bạn có thể sử dụng weak, thì bạn nên sử dụng nó.
UITableViewcó assigncho đại biểu của nó:@property (nonatomic, assign) id <UITableViewDelegate> delegate;