2012-02-23 9 views
7

Nếu tôi có thuộc tính chuỗi chỉ đọc, bạn có cần phải chỉ định strong (hoặc retain) hoặc copy trong tuyên bố không? Nếu tôi không chỉ định, một trong số họ có được giả định không?Thuộc tính chỉ đọc Objective-C có cần chỉ định mạnh hoặc sao chép không?

Dường như với tôi thuộc tính quyền sở hữu chỉ hữu ích khi bạn có người đặt cược.

@property (nonatomic, readonly) NSString *name; 
+0

"chỉ định" luôn được giả định nếu không chỉ định –

+1

Xem http://stackoverflow.com/questions/9397322/does-property-copy-in-combination-with-readonly-make-sense để thảo luận tương tự. – Monolo

+0

Cảm ơn Monolo, +1 trên liên kết. – Boon

Trả lời

9

Điều đó phần lớn là chính xác. Đối với thuộc tính readonly, strong, retain, weakassign không có hiệu lực. Nhưng nếu bạn cũng khai báo thuộc tính ở nơi khác là readwrite (thường xuyên nhất trong danh mục ẩn danh trong số .m), thì các công cụ sửa đổi khác cần phải khớp.

+0

Câu trả lời hay! Nhưng nếu thuộc tính chỉ đọc không có getter và không được redeclared như readwrite nội bộ, mạnh mẽ nên áp dụng cho tài sản quá vì nó có một ivar bây giờ, điều này có đúng không? –