Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift中的重载方法给出了目标C错误_Swift_Cloudkit_Overloading - Fatal编程技术网

Swift中的重载方法给出了目标C错误

Swift中的重载方法给出了目标C错误,swift,cloudkit,overloading,Swift,Cloudkit,Overloading,我正在尝试扩展CKRecord类以允许订阅。为此,我创建了一个名为CKRecordHelper的新文件,并完成了以下操作: extension CKRecord { subscript(key: String) -> AnyObject! { get { return self.objectForKey(key) } set(newValue) { self.setObject(newV

我正在尝试扩展
CKRecord
类以允许订阅。为此,我创建了一个名为
CKRecordHelper
的新文件,并完成了以下操作:

extension CKRecord {
    subscript(key: String) -> AnyObject! {
        get {
            return self.objectForKey(key)
        }
        set(newValue) {
            self.setObject(newValue as? CKRecordValue, forKey: key)
        }
    }
}
但是,我在
get
set
行上得到一个错误,它显示:

使用Objective-C选择器“objectoForKeyedSubscript:”获取下标与使用同一Objective-C选择器的方法“objectForKeyedSubscript”冲突


我该如何解决这个问题?据我所知,Objective-C不允许方法重载,但我使用的是Swift。最后,我只是希望允许
CKRecord
允许订阅它。

使用
@nonobjc
属性从ObjC运行时隐藏该方法,这样Swift编译器就不需要担心与ObjC代码的兼容性

extension CKRecord {
    @nonobjc subscript(key: String) -> AnyObject! {
        get {
            return self.objectForKey(key)
        }
        set(newValue) {
            self.setObject(newValue as? CKRecordValue, forKey: key)
        }
    }
}

使用
@nonobjc
属性从ObjC运行时隐藏该方法,这样Swift编译器就不需要担心与ObjC代码的兼容性

extension CKRecord {
    @nonobjc subscript(key: String) -> AnyObject! {
        get {
            return self.objectForKey(key)
        }
        set(newValue) {
            self.setObject(newValue as? CKRecordValue, forKey: key)
        }
    }
}

从我在操场上的测试来看,CKRecord已经订阅了从我在操场上的测试来看,CKRecord已经订阅了谢谢先生!谢谢你的帮助,先生!我感谢你的帮助。