![](/img/trans.png)
[英]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.