我一直在学习Swift并构建一个基于Swift的Cocoa应用程序,并遇到Swift的内置Array
类型没有writeToFile: atomically:
方法的问题。 Objective-C NSArray
。
那么如何将数组的内容写入文件? Swift中有没有这样的方法? (仅供参考,我无法像the Objective-C's NSArray那样找到Swift数组类型的文档。如果有,请在评论部分链接。)
或者,如果无法使用内置的Array
将数组内容写入Swift中的文件,那么最好的替代方法是什么?我认为NSArray
在Swift代码中也可用,但我宁愿避免使用Objective-C的类。或者我应该使用扩展程序来实现Array
中的功能吗?
答案 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)
将不工作。