2016-01-20 89 views
0

我正在创建一个注册表单应用程序。注册表格数据将保存在CSV文件中。我需要在文档目录中创建一个csv文件并能够写入它。我对Swift很新,所以我遇到了一些麻烦。这是我到目前为止所做的。Swift:在文档目录中创建一个csv文件

var fileManager = NSFileManager.defaultManager() 
var fileHandle: NSFileHandle 

@IBAction func submitForm(sender: AnyObject) { 
    mySingleton.filename = mySingleton.filename + ".csv" 
    let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] 
    let filePath = documentsPath + mySingleton.filename 

    if !fileManager.fileExistsAtPath(mySingleton.filename) { 
     fileManager.createFileAtPath(filePath, contents: nil, attributes: nil) 
     fileHandle = ... 
    } 

} 

很明显,我遇到的代码是FileHandle,它允许修改文件。在Objective-C会是这个样子:

fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:event]; 

那么很明显,如果我想写的文件,我可以做这样的事情:

[fileHandle seekToEndOfFile]; 
[fileHandle writeData:[formData dataUsingEncoding:NSUTF8StringEncoding]]; 
[fileHandle closeFile]; 

所以我真的只挣扎那一部分。谢谢您的帮助!

+0

我不不明白你的问题是什么?你想把这个目标C翻译成Swift吗? –

+0

基本上可以。不太清楚在Swift中如何编程。 –

+0

你的“formData”对象的类型是什么? –

回答

0

在夫特,fileHandleForUpdatingAtPath已成为NSFileHandle一个初始化,采用避免重复并取Objective-C的方法名的末尾,使其成为参数名的夫特命名约定:

let fileHandle = NSFileHandle(forUpdatingAtPath: yourPath) 
+0

啊好吧!所以这是更新的路径!非常感谢。我一直在寻找永远的阿哈 –

+0

不客气。 :) – Moritz

相关问题