Objective-C中的Swift字典作为NSMutableDictionary

Objective-C中的Swift字典作为NSMutableDictionary,objective-c,swift,Objective C,Swift,在我的Swift课程中,我有: class Model : NSObject { var localSettings = Dictionary<String, NSNumber>() class var sharedInstance: Model { struct Singleton { static let instance = Model() } return Singleton.ins

在我的Swift课程中,我有:

class Model : NSObject {

    var localSettings = Dictionary<String, NSNumber>()

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

        return Singleton.instance
    }
}
我遇到编译错误:

Expected method to write dictionary element not found on object of type 'NSDictionary<NSString *,NSNumber *> *'
在“NSDictionary*”类型的对象上找不到写入dictionary元素的预期方法

我使用的是Xcode 8和Swift 2.3

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

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

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