Nếu bạn đang sử dụng ARC và thời gian chạy gần đây (đủ gần đây để cho phép bạn khai báo ivars của bạn trong khối @implementation), thì các biến mẫu đột nhiên trở nên tuyệt vời. Tại sao? Bởi vì không giống như @properties chúng đặc trưng theo lớp. Không có nguy cơ họ sẽ vô tình bị ghi đè bởi một lớp con.
Chúng cũng nhanh hơn trong trường hợp đơn giản, vì bạn không gọi bất kỳ phương thức nào để nhận hoặc đặt chúng.
Cá nhân tôi cũng thấy nó sạch hơn nhiều. Không có phần mở rộng lớp nào xác định các @properties riêng tư và tất cả những thứ rác đó. Chỉ cần ivars, đẹp và đơn giản.
Vì vậy, lời khuyên tốt nhất, IMHO, là sử dụng chúng theo mặc định. Chỉ sử dụng @properties nếu bạn thực sự cần chức năng của chúng, ví dụ:
- Bạn cần một cách để truy cập chúng từ bên ngoài lớp học của bạn.
- Bạn muốn cho phép các lớp con ghi đè chúng.
- Bộ thu thập hoặc thiết lập của bạn không chỉ là một nhiệm vụ tầm thường.
Hai thứ hai thực sự hiếm hơn bạn nghĩ. Nói chung là không khôn ngoan để cố gắng ghi đè các thuộc tính trong các lớp con, chỉ vì nó hơi khác thường và có một số cạnh thô.
Nếu bạn tìm thấy, sau đó, bạn cần phải nâng cấp một ngà voi lên một @property, nó là tốt đẹp và dễ dàng - nơi duy nhất nó có thể được truy cập trong @implementation của bạn, do đó, nó thường là một tìm kiếm đơn giản- và- thay thế để thêm "tự". để tham chiếu (và có thể xóa dấu gạch dưới hàng đầu, nếu bạn đặt tên cho chúng theo cách đó). cho đến khi bạn không cần phải trả chi phí và chạy các rủi ro khi sử dụng @properties.
Nguồn
2012-12-24 02:12:45