Tôi thấy nhiều cuộc thảo luận nói rằng tôi nên sử dụng sao chép cho thuộc tính NSString vì nó sẽ ngăn người khác thay đổi nó sau lưng tôi. Nhưng tại sao chúng ta không chỉ thiết lập thuộc tính chỉ đọc cho nó?Sao chép thuộc tính NSString hoặc chỉ đọc?
Cập nhật
Cám ơn trả lời câu hỏi của tôi. Nhưng vấn đề là đối với tài sản NSString, bạn luôn không muốn người khác sửa đổi nó, đúng không? Bạn có thể tự sửa đổi nó nhưng chắc chắn không phải người khác. Tôi đoán hầu hết thời gian NSString có được giá trị ban đầu của nó được thiết lập (hoặc bởi bạn hoặc bởi người khác), sau đó chỉ bạn mới sửa đổi nó. Sau đó, tại sao không chỉ sử dụng thuộc tính chỉ đọc
Thực ra tôi sử dụng hầu hết thời gian. Nhưng sau đó tôi nhận ra hầu hết thời gian tôi chỉ sử dụng những người định cư trong phương pháp init của tôi. Vì vậy, tôi nghĩ rằng tôi nên sử dụng chỉ đọc thay vì sao chép cho những trường hợp đó.
Vì vậy, hãy để tôi đặt câu hỏi theo cách này: nếu bạn chỉ sử dụng những người định cư cho NSStrings của bạn trong phương pháp init của bạn, thì bạn nên sử dụng chỉ đọc thay thế. Đây có phải là một kết luận hợp lý không?
Cảm ơn bạn đã cập nhật câu hỏi của mình. – Qiulang
Bạn được chào đón =) – justin
"Cách an toàn nhất là sử dụng bản sao và chỉ đọc". Nhưng không phải là nhầm lẫn khách hàng của bạn? chỉ đọc có nghĩa là không có setter, trong khi bản sao có nghĩa là có một setter? Tất nhiên khách hàng của bạn sẽ suy luận thêm rằng bạn thêm ghi đè vào tệp .m của bạn, nhưng tuyên bố sao chép và chỉ đọc vẫn khiến tôi bối rối ngay từ cái nhìn đầu tiên. – Qiulang