2013-03-24 113 views
3

我正在使用NSUserScriptTask來運行用戶放置在應用程序腳本目錄中的腳本。但是,我發現很難找出哪些是NSUserScriptTask接受的已知類型的腳本,並且docs也沒有多大幫助......任何想法?NSUserScriptTask:接受的文件類型?

到目前爲止,我已經嘗試了這些:

  • .SH
  • .applescript
  • .scpt
  • .scptd
  • .TXT

而且coudn't讓他們中的任何人工作(initWithURL:error:方法返回零)

編輯: 我忘了,包括錯誤!我傻......這裏就是被印上的日誌:

Error Domain=NSCocoaErrorDomain Code=259 "The file 「Untitled.applescript」 couldn’t be opened because it isn’t in the correct format." UserInfo=0x100121f50 {NSURL=file://localhost/Users/path to file/Untitled.applescript, NSFilePath=/Users/path to file/Untitled.applescript} 
+0

你是什麼意思是「不能讓他們...的工作」? – 2013-03-24 20:44:17

+1

@PeterHosey我更新了錯誤,我得到的問題 – Alex 2013-03-24 21:15:06

回答

1

The documentation for NSUserScriptTask聲稱直接實例化類可以在任何有效的文件工作,並返回相應的任務類型:

返回的對象將是特定的子類(NSUserUnixTaskNSUserAppleScriptTask,和NSUserAutomatorTask)中的一個,或nil的,如果文件沒有出現匹配任何已知類型的。

如果從一個子類被調用時,結果將是類或nil

實際上,我發現(自10.8.2開始)NSUserScriptTask無條件地返回nil和「這是什麼我不甚至」錯誤。看來你需要自己實例化正確的任務子類。可能值得filing a bug

要測試文件是否可用的腳本任​​務(例如,在打開的面板驗證方法),我只能建議是嘗試實例化這三個類,返回YES如果其中任何成功和NO如果他們都失敗了。

+0

非常好!這奏效了,但我們現在必須找到哪些文件類型會被接受......我發現這些都是:.applescript .scpt .scptd .workflow,但.SH不被接受NSUserUnixTask,我不知道是什麼。 .. – Alex 2013-03-24 23:24:24

+0

@Alex:查看我的最後一段。 – 2013-03-24 23:25:21

+0

是的,我知道,但我想事先告訴用戶支持哪些文件類型,我只想知道您是否有任何想法。當然,我將使用您的方法以編程方式測試文件。 – Alex 2013-03-24 23:34:07

相關問題