2011-12-08 24 views
2

在我的一個應用程序中,我爲標準AppleScript套件的document類添加了一些新屬性。其中一些屬性的類型爲text,其他屬性的類型爲boolean。我寫了一個「sdef」文件,並添加了如果我的應用程序的資源。AppScript問題與Cocoa NSString和AppleScript文本類型?

但是,當我啓動應用程序,也有在控制檯消息是這樣的:

.sdef類型在 套件類「窗口」「標準套房」的「文本」屬性「標題」警告:AppleScript名稱引用可能不適用於 此屬性,因爲它的類型不是NSString派生的。

而當我真正嘗試從AppleScript中的text類型的這種新屬性獲取值時,它將失敗。調用我的應用程序中的正確方法,並返回正確的值NSString,但AppleScript返回錯誤。有一個在控制檯的消息再次:

錯誤而返回的腳本命令的結果:結果 對象......「請求的NSString值」 ......無法轉換到 蘋果事件描述符類型的「文本」。類 '__NSCFString'的這個實例在發送-objectSpecifier(不是 覆蓋?)時返回nil,並且沒有爲腳本 類「text」聲明強制類型。

這可能意味着無法將Cocoa NSString對象轉換爲AppleScript text對象。

當我嘗試從一個新的布爾屬性獲取值時,它工作得很好。

我需要做什麼才能將NSString對象轉換爲AppleScript text對象?

+1

沒有看到任何代碼,很難診斷。我最初的問題是1)內存被正確釋放,2)你是否正確地創建了NSString? – regulus6633

+0

你可以請張貼一些代碼嗎? – evilgoldfish

回答

0

我懷疑你需要將文本參數強制轉換爲NSString。

Set sometextString to current application's NSString's stringwithTring:atext 

用它在你的方法

,並返回它這樣做。

Return sometextString as text