2016-05-31 90 views
1

我有一个要写入文本文件的元组数组(String, String, String)。我尝试了不同的方法,如:将元组数组写入文本文件

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

但是,这给了我一个错误:

Cannot convert value of type '[(String, String, String)]' to specified type 'NSArray'

我能做些什么,以写我数组到一个文件?

我已经将我的项目上传至GitHub供那些想要下载它的人使用。

+1

您的元组是否必须是元组?如果你创建了一个有3个字符串值的结构呢? – NSGangster

+0

@NSGangster我对Swift比较陌生,所以原谅这个noob问题:对于结构体,我可以为每个字符串赋多个值吗?我当前的数组如下所示:'listOfTasks:[(String,String,String)] = []'我用多元组填充它。 – atirit

+0

只需制作一组数组。 [[String,String,String]]元组适用于您想要链接在一起的不同类型。 – rMickeyD

回答

1

问题是即使元组在技术上是一种类型,它总是可以不同。为了防止它被不同的,你需要创建一个typealias:

typealias myStringTuple = (String, String, String) 

var myArray = [myStringTuple]() 

myArray.append(("Hello", "Goodbye", "See you later")) 

print(myArray[0].1) // prints Goodbye 

基本上,你现在已经创建了自己的类型(字符串,字符串,字符串),您可以重复使用的。如果您想将不同类型的链接在一起,这非常方便。你应该可以将它保存为普通数组而不会出现此错误:

Cannot convert value of type '[(String, String, String)]' to specified type 'NSArray' 
+0

我没有回答保存到文件,因为这是一个非常普遍的问题,你可以找出你是否谷歌。 – rMickeyD