私はタプル[(String, String)]
の素早い配列を持ち、この配列をNSMutableArrayにキャストしたいと思います。私はこれを試してみました、それが動作していない:タプルの素早い配列をNSMutableArrayにキャストする方法は?
let myNSMUtableArray = swiftArrayOfTuples as! AnyObject as! NSMutableArray
私はタプル[(String, String)]
の素早い配列を持ち、この配列をNSMutableArrayにキャストしたいと思います。私はこれを試してみました、それが動作していない:タプルの素早い配列をNSMutableArrayにキャストする方法は?
let myNSMUtableArray = swiftArrayOfTuples as! AnyObject as! NSMutableArray
AnyObject
NSArray
およびNSMutableArray
は、その要素タイプをに制限します。
let itemsTuple = [("Pheonix Down", "Potion"), ("Elixer", "Turbo Ether")]
let itemsArray = itemsTuple.map { [$0.0, $0.1] }
let mutableItems = NSMutableArray(array: itemsArray)
あなたがやろうとしているものには二つの問題があります。
NSArray
にキャストすることができますが、それはNSMutableArray
にキャストすることはできませんが、あなたがString
オブジェクトのスウィフト配列からNSMutableArray
を構築する方法である:Tuple
またはStruct
のような迅速なタイプは、彼らがにキャストまたはとして参照することができないのObjective-Cには同等を持っていないので
var arr = ["a"]
arr.append("b")
let mutable = (arr as AnyObject as! NSArray).mutableCopy()
mutable.addObject("c")
print(mutable)
あなたがすることはできません。
あなたはタプルの迅速な配列からNSMutableArrayのを返さなければならない場合は次善の策
は、2つの要素の配列の配列を返すことがあります。 2D配列 '[[String]]'のタプルを変更し、 '[AnyObject]'として保存してください –