2016-04-13 41 views
4

我有swift數組元組[(String, String)],並希望將此數組轉換爲NSMutableArray。我曾嘗試這樣做,它不工作:如何將一個Swift數組轉換爲NSMutableArray?

let myNSMUtableArray = swiftArrayOfTuples as! AnyObject as! NSMutableArray 
+1

你不能。更改二維數組''[[String]]的元組並將其保存爲[AnyObject]' –

回答

7

由於迅速的類型,如TupleStruct已經在Objective-C沒有等價它們不能被轉換爲或引用爲AnyObject其中NSArrayNSMutableArray將它們的元素類型約束爲。

,如果你必須從一個元組的迅速陣列返回一個NSMutableArray退而求其次可能回到2元數組的數組:

let itemsTuple = [("Pheonix Down", "Potion"), ("Elixer", "Turbo Ether")] 
let itemsArray = itemsTuple.map { [$0.0, $0.1] } 
let mutableItems = NSMutableArray(array: itemsArray) 
2

有兩個問題與你正在嘗試做的:

  • 斯威夫特陣列可以轉換爲NSArray,但它不能被轉換爲NSMutableArray沒有構建副本
  • Swift元組沒有Cocoa對象,所以你不能將它們或包含它們的Swift集合轉換爲Cocoa類型。

這裏是你如何從String對象斯威夫特陣列構建NSMutableArray

var arr = ["a"] 
arr.append("b") 
let mutable = (arr as AnyObject as! NSArray).mutableCopy() 
mutable.addObject("c") 
print(mutable) 
相關問題