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

黑帽武士

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

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

但是,我在getset上遇到错误,内容为:

使用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)
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

didRangeBeaconRegion方法在目标c中给出了重复的信标设备

scala中的方法重载给出了编译错误模棱两可的参考

方法可以在目标c中重载,对吗?

C#中的MongoDb“ AnyIn”过滤器方法给出了编译器错误

子shell中的bash -c给出了EOF解析错误

Python 中的 LinearRegression 给出了错误的结果?

fputs中的fgets给出了分段错误

Varargs在Julia中给出了关键错误

eval在shell脚本中给出了错误

Swift中的后卫对if给出了不同的答案

Swift:XCode6 Beta 5在AppDelegate中的核心数据对象上给出了错误

以下代码中可能有问题的地方,在c中给出了分段错误

比较字符串在Objective-C中给出了错误

Neovim中的clang给出了C ++ / pytorch基本示例的pp_file_not_found错误

在 C++ 中读取十六进制值给出了错误的数字

ReactJS 在 useMemo 函数中给出了错误的设置状态错误

Statistics.corr在IntelliJ IDEA中给出以下错误:无法解析重载的方法'corr'

在目标C中将Swift分类与重载方法一起使用

make给出了错误的make:***没有规则可以使目标“干净”。停止

从 Excel 表中读取给出了错误的值

Moment JS在Node.js中给出了错误的时间

TableView中给出了错误时改变列名其他

Calender.getInstance()给出了错误Android Studio中

在Smalltalk中,LinkedList对象的深层副本给出了错误

Unpivoting 在电源查询中给出了错误的行数

R素食包中的部分Mantel测试给出了错误

Google脚本中的时间触发器给出了错误

我在clojure中的模逆似乎给出了错误的答案

文件上传使用modelform在Django中给出了错误请求