2014-03-07 124 views
1

我作出了可可的AppleScript OSX的應用程序在Xcode 5ArrayController的保存內容到文件

我有一個表視圖,其使用陣列控制器與每個按鈕按QuickTime文件的當前播放時間更新。所有工作正常,但我堅持如何將表視圖的結果保存到文件,最好是.csv

我一直在試圖研究如何做到這一點,但我發現大多數教程與iOS相關。 我已經使用NSStrings和writeToFile進行了研究,但在填充空白時遇到了問題。

如果有人可以給我一些指示或知道與此有關的教程,我將不勝感激。

由於

編輯:我曾嘗試表視圖的表內容,以在IB陣列控制器與FinalResults的鍵路徑,然後在保存按鈕發件人結合

FinalResult's writeToFile:FilePath 

文件路徑是使用位置集合

set FilePath to choose folder 

這是成功建立,但是當我點擊保存按鈕它給我下面的錯誤

014-03-11 22:37:07.462 SMPTE抓取[4043:303] * - [AppDelegate的備份:]:無法識別的函數writeToFile_。 (錯誤-10000)

我是否需要以某種方式將表內容綁定到其他東西?

我已經在這,現在天..

感謝

+0

下一步:檢出NSArray和它的writeToFile方法。 – 2014-03-07 04:30:02

+0

我是否需要讓NSArray引用NSArrayController或表視圖,是否會在IB的Bindings Inspector中完成? – benWin

回答

0

由於在Macscripter StefanK過來,他解決了我原來的問題,而我試圖解決它在很回合的方式。 (他必須是一個心靈讀者)

無論如何,我想我會與任何發現自己陷入類似困境的人分享它。

set filePath to POSIX path of (path to desktop) & "test.csv" -- sample path, change it something appropriate 
set theArray to arrayController's arrangedObjects() -- arrayController is a property connected to an NSArrayController instance 
set csvList to current application's NSMutableArray's array() 
csvList's addObject:((theArray's objectAtIndex:0)'s allKeys()'s componentsJoinedByString:",") 
repeat with anItem in theArray 
    (csvList's addObject:((anItem's allValues())'s componentsJoinedByString:",")) 
end repeat 
set csvText to (csvList's componentsJoinedByString:return) 
csvText's writeToFile:filePath atomically:true encoding:(current application's NSUTF8StringEncoding) |error|:(missing value)