NSArray 的 writeToFile:原子式:在 Swift 和 Array 中?



我一直在学习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)

工作

相关内容

  • 没有找到相关文章

最新更新