我使用核心數據存儲用戶信息,並試圖使用「writeToFile」寫入測量數據(來自內置加速度計)。核心數據運行良好,持久存儲用戶數據;然而,由「writeToFile」存儲的測量數據文件在長時間/較新的文件寫入後會逐漸消失。將數據寫入帶有持久存儲的文件,swift
我應該使用SQLite還是其他數據庫來存儲測量數據文件?或者是否有可能使用核心數據來存儲文件(雖然看起來不可行)?我想將用戶數據和測量數據都保存在持久存儲器中。感謝您的建議!
func writeToFile() {
let firstName = String(trial!.project!)
let secondName = String(trial!.record!)
let exportFilePath = NSTemporaryDirectory() + "\(firstName)_\(secondName).csv"
let exportFileURL = NSURL(fileURLWithPath: exportFilePath)!
NSFileManager.defaultManager().createFileAtPath(exportFilePath, contents: NSData(), attributes: nil)
更新: 問題通過使用 「NSFileManager.defaultManager()URLForDirectory。」 解決。最終的代碼如下所示:
我不確定是否需要聲明「createDirectoryAtURL」或是否可以創建該文件。
let documentsURL = NSFileManager.defaultManager().URLForDirectory(.DocumentDirectory, inDomain: .UserDomainMask, appropriateForURL: NSURL(), create: true, error: nil)
NSFileManager.defaultManager().createDirectoryAtURL(documentsURL!, withIntermediateDirectories: true, attributes: nil, error: nil)
let fileURL = documentsURL!.URLByAppendingPathComponent("\(firstName).csv")
NSFileManager.defaultManager().createFileAtPath(fileURL.path!, contents: NSData(), attributes: nil)
let fileHandle = NSFileHandle(forWritingToURL: fileURL, error: nil)
if let fileHandle = fileHandle {
...
fileHandle.writeData(csvData!)
...
我還在自己學習這些東西,但它是否與存儲文件的位置有關? (這是一個臨時位置?)。再一次,我對這些類不熟悉,但它被命名爲'NSTemporaryDirectory()',這看起來似乎是暫時性的。 – Fluidity
請顯示您的平臺。 iOS版?沙盒Mac(App Store應用程序)?或免費的Mac應用程序? – OOPer
嗨!這是iOS 8 – Mushroomcloud