在Swift中创建一个可变字典

时间:2016-03-24 19:40:38

标签: ios swift

我想创建一个可变字典,我可以将它传递给另一个控制器,以便不同控制器中的字典指向同一个内存位置。如果我更改另一个控制器的值,它也会反映在前一个控制器中。 这个技巧曾经可以在不使用任何委托的情况下与NSMutableDictionary一起使用。

我的字典类型为:[String:AnyObject]

2 个答案:

答案 0 :(得分:2)

Swift集合是值类型,而不是引用类型,虽然您可以通过引用传递值类型,但它仅持续调用的生命周期。

您正在做的事情将被视为糟糕的设计 - 对象是主权的,具有明确定义的接口和封装状态;他们没有非正式地集合国家。

您可能需要做的是获取共享状态,将接口形式化,然后将其移动到模型中。每个控制器都可以单独与您的模型通信。

答案 1 :(得分:0)

Swift的字典类型是值类型,而旧的NSMutableDictionary实例是引用类型。

没有任何东西可以说你必须在旧词典的位置使用Swift的值类型。如果您有充分的理由在字典中使用引用语义,请继续将其保留为NSMutableDictionary并使用该类的方法来操作它。请在代码中注意您明确使用NSMutableDictionary 因为您需要引用语义。