我有一个包含元组的Swift数组[(String, String)]
,希望将其转换为NSMutableArray。我尝试过以下方法,但并没有成功:
let myNSMUtableArray = swiftArrayOfTuples as! AnyObject as! NSMutableArray
我有一个包含元组的Swift数组[(String, String)]
,希望将其转换为NSMutableArray。我尝试过以下方法,但并没有成功:
let myNSMUtableArray = swiftArrayOfTuples as! AnyObject as! NSMutableArray
由于像Tuple
或Struct
之类的Swift类型在Objective-C中没有等价物,因此它们无法被强制转换或引用为AnyObject
,而NSArray
和NSMutableArray
会限制它们的元素类型。
如果您必须从一个包含元组的Swift数组返回NSMutableArray
,则可能的替代方法是返回一个由2个元素数组组成的数组:
let itemsTuple = [("Pheonix Down", "Potion"), ("Elixer", "Turbo Ether")]
let itemsArray = itemsTuple.map { [$0.0, $0.1] }
let mutableItems = NSMutableArray(array: itemsArray)
NSMutableArray(array: itemsArray)
这就是诀窍。 - Coder ACJHPNSArray
,但是无法将其转换为NSMutableArray
而不进行构造副本String
对象的数组构造NSMutableArray
的方法:var arr = ["a"]
arr.append("b")
let mutable = (arr as AnyObject as! NSArray).mutableCopy()
mutable.addObject("c")
print(mutable)
[[String]]
并将其保存为[AnyObject]
。 - Leo Dabus