2013-08-05 23 views
0

我試圖在OS X應用程序中實現AppleScript支持。在Cocoa Scripting文檔中,他們不斷提及可以在應用程序中包含實際實例未表示的可編寫腳本的AppleScript實體,例如一個文本編輯應用程序,允許通過AppleScript訪問「單詞」和「字符」,但實際上並沒有Word或Character類(只是一個字符串來存儲文本)。支持AppleScript不是實際對象的實體

有時候一個應用程序的對象模型提供在粒度級別,將是不切實際的 個別對象實現腳本訪問 對象。例如,AppleScript腳本 可以詢問文本文檔的字符,但應用程序將每個字符表示爲對象的代價相當昂貴。 NSTextStorage類用特殊訪問器 方法處理此情況,characters

我不明白我在一個非常相似的情況下如何達到同樣的目的。 「特殊訪問器方法」是什麼意思?

回答

1

這不是訪問方法本身,它的返回值特別多。最終,應用程序中的任何腳本化「對象」都必須由Objective-C對象支持 - KVC必須具備某些功能 - 但它可以是僅在腳本需要時創建的對象。例如,可以通過使characters返回一個實現-objectAtIndex:以按需製作「字符」對象的NSArray子類來處理文本的「字符」。或者,您可以實現countOfCharactersobjectInCharactersAtIndex:,同樣返回按需「字符」對象。 (請參閱Cocoa腳本指南,在「維護KVC合規性」下。)