2016-05-31 91 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