我一直在学习Swift和构建一个基于Swift的Cocoa应用程序,并面临Swift内置的Array
类型没有writeToFile: atomically:
方法的问题,这是在Objective-C的NSArray
中实现的。
那么我如何将数组的内容写入文件呢?Swift中有这样的方法吗?(仅供参考,我没能找到Swift的数组类型的文档,就像Objective-C的NSArray一样。如果你有,请在评论区链接。)
或者如果不能在Swift中使用内置的Array
将数组的内容写入文件,那么最好的替代方案是什么?我认为NSArray
在Swift代码中也是可用的,但我宁愿避免Objective-C的类。或者我应该使用扩展来实现Array
中的功能?
我不确定Swift中是否存在将数组写入文件的"原生"能力,但由于数组可以桥接到NSArray
s,您应该能够像这样将数组写入文件:
let mySwiftArray = ... // Your Swift array
let cocoaArray : NSArray = mySwiftArray
cocoaArray.writeToFile(filePath, atomically:true);
第二行创建了一个NSArray
类型的"桥接"对象,它应该使您能够从基础访问所有方法。
这将工作…
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)
将不工作