簡體   English   中英

為什么-[NSObjectController selection]返回代理對象?

[英]Why does -[NSObjectController selection] return a proxy object?

NSObjectController及其子類返回用於選擇的代理對象。 我想了解他們為什么選擇這種方式進行設計。 該文檔似乎並沒有闡明為什么會這樣。

Apple的Cocoa Bindings編程主題具有這樣的說法:

您可以建立到控制器的選擇方法或selectedObjects方法的綁定。 但是,應避免通過selectedObjects數組進行綁定,例如selectedObjects.name。 相反,您應該使用selection.name。 同樣,您應該避免通過selectedObjects返回的數組觀察鍵。 通過選擇返回的代理在管理隨選擇更改的鍵值觀察中的更改方面更有效。

我認為您會發現答案就在最后一句話中。

對於它的價值, [objectController valueForKeyPath:@"selection.self"]返回所選對象本身。

另外

通常,您通常需要直接訪問控制器當前選擇的對象,而不是選擇返回的代理對象。 NSObjectController及其子類提供了selectedObjects方法,使您可以做到這一點。 此方法返回一個包含接收方當前選擇的對象的數組。 NSObjectController的實現返回一個包含單個對象(內容對象)的數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM