无法在Swift中编译array.writeToFile;但在ObjC中没关系

时间:2014-08-18 04:13:40

标签: arrays swift persistence


我将在Swift中查看各种Cocoa持久存储方案。
Objective-C 版本编译出事件:

NSArray *ricArray = @[@"One",@"Two",@"Three"];
[ricArray writeToFile:@"path" atomically:true];

但是,
Swift 版本不起作用。
编译器不相信该数组具有'writeToFile'。

let docs = NSSearchPathForDirectoriesInDomains(.DocumentDirectory,.UserDomainMask,true) as Array
let pathToFile = docs[0].stringByAppendingString("/myFile.txt")

var shoppingList:[String] = ["Eggs", "Milk"]
shoppingList.writeToFile(pathToFile, atomically:true)
  

... swift:267:5:'[String]'没有名为'writeToFile'的成员

我做错了什么?

1 个答案:

答案 0 :(得分:2)

[String]是swift的原生Array实施,而不是NSArray; swift的Array没有writeToFile()方法。但是,您可以轻松地在两者之间进行投射。这应该有效:

var shoppingList:[String] = ["Eggs", "Milk"]
(shoppingList as NSArray).writeToFile(pathToFile, atomically:true)