【发布时间】:2015-04-11 07:57:29
【问题描述】:
在我的 Swift 库 EVCloudKitDao 中,我做了很多反射。因此,我将数据对象的基类设置为 NSObject。现在升级到 Xcode 6.3 后,我在获取哈希和对象描述的 2 个函数上遇到错误。描述函数很不错,但我确实需要哈希来使我的对象与 Set 一起工作。
这是我的代码
public class EVCloudKitDataObject : NSObject, NSCoding, Printable, Hashable, Equatable {
public func hash() -> Int {
return self.hashValue
}
public func description() -> String {
return EVReflection.description(self)
}
}
我得到的错误是:
/Users/evermeer/Desktop/dev/GitHub/EVCloudKitDao/AppMessage/AppMessage/CloudKit/EVCloudKitDataObject.swift:106:17: 带有 Objective-C 选择器“hash”的方法“hash()”与 getter 冲突 对于具有相同 Objective-C 的超类“NSObject”的“哈希” 选择器
/Users/evermeer/Desktop/dev/GitHub/EVCloudKitDao/AppMessage/AppMessage/CloudKit/EVCloudKitDataObject.swift:86:17: 方法 'description()' 和 Objective-C 选择器'description' 与来自超类“NSObject”的“描述”的 getter 冲突 使用相同的 Objective-C 选择器
有谁知道我该如何解决这个问题? 您不能使用覆盖。
【问题讨论】:
-
“你不能使用覆盖”是什么意思?
-
当你使用覆盖时,你会得到错误:方法不会覆盖其超类中的任何方法
标签: swift reflection overloading nsobject