xem xét:sao chép bất động sản và Block_copy (myBlock)/[myBlock bản sao]
typedef void (^select_block_t)(UIView *) ;
(1) @property (copy, nonatomic) select_block_t myBlockProperty ;
(2) @property (strong, nonatomic) select_block_t myBlockProperty ;
(3) @property (assign, nonatomic) select_block_t myBlockProperty ;
và:
(A) self.myBlockProperty = ^(UIView *) {NSLog(@"Hi");} ;
(B) self.myBlockProperty = [^(UIView *) {NSLog(@"Hi");} copy] ;
Tôi cố gắng để hiểu được cách chính xác để lập bản đồ mà kê khai tài sản là những gì mà ngữ nghĩa bản sao khối
Tôi đã xem các ví dụ here trên S.O. có lợi cho [1: B]
Nhưng sau đó tôi bị lẫn lộn bởi cách hoạt động dự phòng 'sao chép' dư thừa. Hiểu biết hạn chế của tôi là [1: A] phải chính xác, vì tôi muốn khối sẽ được sao chép một lần khi tôi chỉ định thuộc tính, không phải lúc tạo khối và sau đó một lần nữa tại thời điểm gán thuộc tính.
[3: B] cũng sẽ có ý nghĩa theo lý do cơ bản của tôi. Vì vậy, tôi hiểu lầm gì?
Chờ, bạn vừa thấy thẻ của mình _automatic-ref-counting_, bạn có đang sử dụng ARC không? – joerick
Có, tôi đang sử dụng ARC. – verec
@verec Tôi đã cập nhật câu trả lời của mình. Hãy cho tôi biết nếu bạn có bất kỳ câu hỏi nào, tôi không chắc tôi đã rõ ràng như thế nào! – joerick