Tôi tiếp tục chạy vào các tình huống với UIViewControllers chứa một số lượng lớn các IBOutlets kết nối bộ điều khiển với các xem phụ của khung nhìn (thường là UILabels).Thực tiễn tốt nhất để giữ lại các yếu tố chế độ xem IBOutlet?
Tiếp theo "thực hành tốt nhất", ví dụ: sử dụng giữ lại trên tất cả các yếu tố giao diện người dùng: @property (retain, nonatomic) UILabel *theElement1
, @property (retain, nonatomic) UILabel *theElement2
... mang lại cho tôi số tiền điên mã tấm nồi hơi trong dealloc
và viewDidUnload
cho bộ điều khiển xem.
Các IBOutlets vi phạm không bao giờ được sử dụng cũng như không được đặt bên ngoài UIViewController (phương thức thiết lập chỉ được sử dụng trong viewDidUnload và khi ngòi được nạp) ngoại trừ tự động khi ngòi được nạp.
Kết quả từ "thực hành tốt nhất" là:
dealloc
rải rác với[theElement1 release]
,[theElement2 release]
, vvviewDidUnload
với[self setTheElement1:nil]
,[self setTheElement2:nil]
, vv
Tuy nhiên, vì tất cả những yếu tố được biết là được giữ lại bởi xem anyway, và xem được phát hành bởi UIViewController vào thời điểm thích hợp, tôi thấy hoàn toàn không có lý do gì để tôi quản lý thủ công việc này.
Lý do cho "thực hành tốt nhất" cụ thể này (theo như tôi có thể biết) là phù hợp với số tiền còn lại của bạn. Nhưng một khi bạn bắt đầu có một số lượng lớn các cửa hàng, bạn có nhiều khả năng bỏ lỡ việc xử lý một số cửa hàng ở một trong hai phương pháp, bạn sẽ gặp khó khăn khi thay đổi cửa hàng để "giữ lại" cho những cửa hàng đặc biệt mà bạn thực sự muốn để giữ lại ngay cả sau khi xem là tạm biệt.
Có một số lý do cho "thực hành tốt nhất" khác với cái tôi biết hoặc tôi nên cảm thấy khá tự do để phá vỡ "quy tắc" này trong trường hợp cụ thể của các bản xem trước cho chế độ xem của UIViewController?
Tôi thích chủ đề của câu hỏi này. "Thực sự" – VoodooChild