簡體   English   中英

如何將一組快速元組轉換為NSMutableArray?

[英]How to cast a swift array of tuples to NSMutableArray?

我有快速的元組數組[(String, String)]並希望將此數組轉換為NSMutableArray。 我試過這個並沒有用:

let myNSMUtableArray = swiftArrayOfTuples as! AnyObject as! NSMutableArray

由於像TupleStruct這樣的swift類型在Objective-C中沒有等價物,所以它們不能被AnyObjectNSArrayNSMutableArray約束其元素類型的AnyObject

如果必須從快速的元組數組返回NSMutableArray,那么下一個最好的事情可能是返回一個包含2個元素數組的數組:

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

你要做的事情有兩個問題:

  • Swift數組可以轉換為NSArray ,但是如果不構造副本,則無法將其NSMutableArrayNSMutableArray
  • Swift元組沒有Cocoa對應物,所以你不能將它們或包含它們的Swift集合轉換為Cocoa類型。

以下是如何從Swift的String對象數組構造NSMutableArray

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM