[英]How to addObject as NSMutableArray in NSMutableArray in swift
[英]Swift 3 - How declare a typed NSMutableArray
我想用NSMutableArray<Client>
值聲明一個字典。 但是問題是我遇到了錯誤,指出我刪除了<Client>
部分。
var mydict: [String:NSMutableArray<Client>] = [:]
如何正確聲明類型化的NSMutableArray
NSMutableArray
是一個異構容器
快速擴展Vishal Patel的答案:
如果將其粘貼到情節提要中,則不會在任何客戶端類型上失敗
import UIKit
import PlaygroundSupport
struct Client
{
}
struct NoneClient
{
}
class MyViewController : UIViewController {
var mydict: [String:[Client]] = [:]
override func loadView() {
let client = Client()
mydict["xyz"] = [client]
let noneClient = NoneClient()
mydict["abc"] = [NoneClient]
}
}
var myDict = [String : [Client]]()
您也可以像這樣寫var mydict: [String:[Client]] = [:]
你可以這樣
import UIKit
import PlaygroundSupport
struct Client
{
}
class MyViewController : UIViewController {
var mydict: [String:[Client]] = [:]
override func loadView() {
let client = Client()
mydict["xyz"] = [client]
print(mydict)
}
}
您不應該再使用NSMutableArray
,但是,如果它是struct ,則無法使用NSMutableArray
Either for Client
通過ref傳遞
請如下使用
var myDict = [String : [Client]]()
如果要通過ref傳遞,則Client
應該是實現中的類而不是struct 。
如果只想使用struct
則需要手動將更新的Client`重新分配給字典
如果是班級 (更好的選擇)
(myDict["key1"] as! [Client]).firstName = "Jon"
在結構的情況下
var clientObjArray = (myDict["key1"] as! [Client])
var clientObjArrayFirstObj = clientObjArray.first
clientObjArrayFirstObj?.name = "Jon"
clientObjArray.remove(at: 0)
clientObjArray.insert(clientObjArrayFirstObj!, at: 0)
myDict["key1"] = clientObjArray
注意:例如,我添加了first和0 Index static
希望你明白
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.