Nếu tôi có thể tải một đối tượng từ một tập tin nib mà không sử dụng chủ sở hữu của tập tin thì lý do tồn tại của chủ sở hữu tập tin là gì? Ngoài ra các kết nối đầu ra có thể được tạo ra mà không cần sử dụng chủ sở hữu của tệp. Ví dụ tôi có thể làm cho các kết nối trực tiếp từ đối tượng đến ngòi bút. Vì vậy, một lần nữa tôi thực sự không thể hiểu được sự cần thiết của chủ sở hữu tập tin. Liệu nó có bất kỳ mối quan hệ với mô hình MVC? Chủ sở hữu của tệp có phải là loại UIViewController không?Vấn đề gì có thể khiến chủ sở hữu tệp nib thành không?
Trả lời
Trong khi tải tệp nib, Cocoa tạo mỗi đối tượng được tuần tự hóa trong tệp nib. Sau đó, đối với mỗi kết nối trong tệp nib, nó gọi setValue:forKey:
trên đối tượng đích để tạo kết nối. Một số kết nối đến đối tượng nil
. Những tin nhắn setValue:forKey:
này được gửi tới bất kỳ đối tượng nào được chuyển làm chủ sở hữu tệp.
Nếu bạn không có chủ sở hữu tệp thì kết nối nil
sẽ bị bỏ qua. Nếu bạn không có các kết nối nil
, thì sẽ không có sự khác biệt nào so với việc không có chủ sở hữu tệp. Điều này không đặc biệt phổ biến.
Tất cả điều này cho phép bạn tạo nhanh nhiều phiên bản của cùng một đối tượng tệp nib, bằng cách chuyển các chủ sở hữu tệp khác nhau đến quá trình tải.
EDIT:
Hãy nhớ rằng, một tập tin nib chỉ là một loạt các đối tượng serialized. Khi bạn lập trình tạo bộ điều khiển chế độ xem với initWithNibName:bundle:
, trình điều khiển chế độ xem đã tồn tại trước khi tệp nib được tải. Các đối tượng bên trong tệp nib hầu như luôn muốn có thể tham chiếu đến bộ điều khiển xem đó. Vì vậy, chúng tôi chuyển bộ điều khiển chế độ xem đến UINib
làm chủ sở hữu tệp. Bất cứ nơi nào tệp nib nói nil
, UINib
thay thế bằng chủ sở hữu tệp (thường là trình điều khiển chế độ xem).
Điều này rất linh hoạt, nhưng tính linh hoạt không phải là vấn đề. Sẽ không có cách nào để tham khảo bộ điều khiển xem bên trong tệp nib nếu bạn không truyền nó trong quá trình khởi tạo nib.
- 1. Điều gì mô tả "Chủ sở hữu tệp" tốt nhất trong mục tiêu-c/cacao Nib?
- 2. UINavigationController NIB yêu cầu Chủ sở hữu tệp phải có chế độ xem?
- 3. Biểu tượng của chủ sở hữu tệp
- 4. Kết nối Chủ sở hữu tệp để xem sự cố
- 5. Chủ sở hữu của QBoxLayout có trở thành chủ sở hữu của tất cả tiện ích bố cục không?
- 6. Có lệnh nào để trả lại chủ sở hữu của một tệp không?
- 7. Chuyển đổi tệp NIB thành tệp XIB
- 8. Sự khác biệt giữa tài sản .Người sở hữu và ShowDialog (chủ sở hữu IWin32Window)?
- 9. Điều gì có thể khiến ViewData.ModelState.IsValid trở thành false
- 10. Tìm chủ sở hữu của một tệp trong unix
- 11. Cách đặt chủ sở hữu cho thư mục trong% tệp?
- 12. FileMerge .nib loại tệp không thể được hợp nhất
- 13. Kiểm tra quyền của chủ sở hữu tệp
- 14. Thay đổi chủ sở hữu tệp trong Windows
- 15. Nhận/thiết lập chủ sở hữu tệp trong C#
- 16. Gắn kết mạng NFS: đặt chủ sở hữu thành tài khoản cụ thể
- 17. Sử dụng id <protocol> cho chủ sở hữu tệp trong Trình tạo giao diện?
- 18. Chủ đề .NET có thể chờ đợi như thế nào trên một syncblk không thuộc sở hữu của bất kỳ chủ đề nào?
- 19. Chủ sở hữu mối quan hệ có ý nghĩa gì trong Hibernate?
- 20. Tôi có thể cập nhật id chủ sở hữu của một Liên hệ bằng LINQ không?
- 21. Một số vấn đề có thể khiến Magento chuyển hướng đến/downloader/(Thuật sĩ cài đặt)
- 22. lấy quyền sở hữu một tệp C#
- 23. Chuỗi cuộc gọi không thể truy cập đối tượng này vì một chủ đề khác sở hữu nó
- 24. chủ sở hữu của JVM là ai?
- 25. WPF Nhận chủ sở hữu UserControl
- 26. Thay đổi chủ sở hữu bảng
- 27. Chủ đề là gì (Chủ đề là gì)?
- 28. Không có bảng android_metadata như vậy, có vấn đề gì?
- 29. Thay đổi chủ sở hữu và nhóm trong c
- 30. "Không thể có được thông tin quyền sở hữu" trong Netstat -ab nghĩa là gì?
lý do kết nối với đối tượng nil là gì? –
"đối tượng nil" trong IB có nghĩa là "đối tượng được truyền dưới dạng Chủ sở hữu tệp". –
Vì vậy, lý do duy nhất của sự tồn tại của chủ sở hữu tập tin là để thêm năng động hơn để ngòi, bằng cách cho chúng ta khả năng thay đổi anh ta trong quá trình tải? –