gpt4 book ai didi

objective-c - Objective-C 中的 Swift 字典作为 NSMutableDictionary

转载 作者:行者123 更新时间:2023-11-30 13:19:21 25 4
gpt4 key购买 nike

在我的 Swift 类(class)中,我有:

class Model : NSObject {

var localSettings = Dictionary<String, NSNumber>()

class var sharedInstance: Model {
struct Singleton {
static let instance = Model()
}

return Singleton.instance
}
}

我从 Objective-C 类中调用我的新 Swift 模型类。我读取本地设置字典没有问题,但是当我尝试修改它时:

self.model.localSettings[@"Key"] = @1;

我遇到编译错误:

Expected method to write dictionary element not found on object of type 'NSDictionary<NSString *,NSNumber *> *'

我使用的是 Xcode 8 和 Swift 2.3

最佳答案

每当您在 Swift 中修改字典/数组时,setter 都会再次被调用,如果您向集合中添加新元素,则在 ObjC 上不会发生这种情况,我认为这就是可变集合桥接到其不可变等价物的原因。

您可以创建一个可变副本,修改它,并将其设置为属性,但这会非常冗长,我认为更好的解决方案是向 Model 添加修改设置的方法字典。

关于objective-c - Objective-C 中的 Swift 字典作为 NSMutableDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37912247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com