2012-06-04 28 views
5

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

4

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.

+0

lý do kết nối với đối tượng nil là gì? –

+0

"đố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". –

+0

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? –

Các vấn đề liên quan