什么相当于NSArray的writeToFile:原子地:在Swift和Array中?

时间:2014-06-16 15:06:10

标签: cocoa swift

我一直在学习Swift并构建一个基于Swift的Cocoa应用程序,并遇到Swift的内置Array类型没有writeToFile: atomically:方法的问题。 Objective-C NSArray

那么如何将数组的内容写入文件? Swift中有没有这样的方法? (仅供参考,我无法像the Objective-C's NSArray那样找到Swift数组类型的文档。如果有,请在评论部分链接。)

或者,如果无法使用内置的Array将数组内容写入Swift中的文件,那么最好的替代方法是什么?我认为NSArray在Swift代码中也可用,但我宁愿避免使用Objective-C的类。或者我应该使用扩展程序来实现Array中的功能吗?

2 个答案:

答案 0 :(得分:7)

我不确定在Swift中是否存在将数组写入文件的“本机”能力,但由于数组可以桥接到NSArray,因此您应该能够将数组写入如下文件:

let mySwiftArray = ... // Your Swift array
let cocoaArray : NSArray = mySwiftArray
cocoaArray.writeToFile(filePath, atomically:true);

第二行创建一个类型为NSArray的“桥接”对象,该对象可让您访问基础中的所有方法。

答案 1 :(得分:1)

这会有用......

let array = ["One", "Two", "Three"] as NSArray
array.writeToFile("/Users/xxx/Desktop/trial.txt", atomically:true)

输出是:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
    <string>One</string>
    <string>Two</string>
    <string>Three</string>
</array>
</plist>

但你必须把它作为NSArray

施放
let array = ["One", "Two", "Three"]  // Native Swift array will not work
array.writeToFile("/Users/xxx/Desktop/trial.txt", atomically:true)

工作。

相关问题