2016-05-15 38 views
0

給定一個腳本對象的NSScriptObjectSpecifier,如何告知其容器中的對象的索引?Cocoa腳本:獲取其容器中可編寫腳本的對象的索引

我找不到NSScriptObjectSpecifier或其子類中的訪問器方法。

如果對象是NSIndexSpecifier,則很容易獲得索引。但是如果是別的東西,例如一個NSNameSpecifier,那麼它需要被查詢。可可腳本指南指出,當框架需要學習索引時,框架會自動執行該操作,但沒有解釋如何完成該操作。

有一個腳本對象可以實現的方法來返回這樣的索引,但這是一個可選的方法,所以我假設我不能簡單地在任何腳本對象上調用它。

是否有一些其他簡單的方法來學習索引,還是我必須實現我自己的方法,沿着說明符並自行處理所有可能的情況?

+0

你實施了'-objectIn AtIndex:'? – vadian

+0

是的。這將如何幫助?我不想得到所有的項目,然後搜索他們的問題的對象。這會導致相當糟糕的表現。 –

+0

然後我不明白這個問題。對於層次結構中的任何子類,您必須提供一個包含「containerClassDescription」的「NSScriptObjectSpecifier」。從該說明符中,框架可以識別適當的索引。 – vadian

回答

0

您是否在尋找NSArray的

- indexOfObjectIdenticalTo:self 

任何機會?當我需要返回formIndex ospec時,我在-objectSpecifier方法中使用它。