我有快速的元组[(String, String)]
数组,并希望将此数组转换为NSMutableArray。我试过这个并没有用:
let myNSMUtableArray = swiftArrayOfTuples as! AnyObject as! NSMutableArray
答案 0 :(得分:11)
由于Tuple
或Struct
等快速类型在Objective-C中没有等效,因此无法将其转换为AnyObject
NSArray
和NSMutableArray
将其元素类型约束为。
如果必须从快速的元组数组中返回NSMutableArray,那么下一个最好的事情可能是返回一个包含2个元素数组的数组:
let itemsTuple = [("Pheonix Down", "Potion"), ("Elixer", "Turbo Ether")]
let itemsArray = itemsTuple.map { [$0.0, $0.1] }
let mutableItems = NSMutableArray(array: itemsArray)
答案 1 :(得分:2)
您要做的事情有两个问题:
NSArray
,但如果不构建副本则无法强制转换为NSMutableArray
以下是如何从NSMutableArray
个对象的Swift数组构造String
:
var arr = ["a"]
arr.append("b")
let mutable = (arr as AnyObject as! NSArray).mutableCopy()
mutable.addObject("c")
print(mutable)