Swift协议NSObjectProtocol
将hash
定义为返回Int
的属性。 Objective-C协议NSObject
将hash
定义为NSUInteger
类型的属性。
由于NSUInteger
是无符号整数,Int
是有符号整数,因此这些类型不兼容。因此,为符合NSObjectProtocol
的任何Swift对象生成的Objective-C标头会生成以下形式的警告:
"物业类型' NSInteger" (又名' int')与类型' NSUInteger'不兼容(又名' unsigned int')继承自' NSObject'。
有没有办法定义一个Swift对象,以便它不会产生这些警告? (不用说,我不想用编译指示手动调整生成的头文件。)
另外,甚至还需要哈希? API文档说它可以在iOS7.1中使用,但它没有标记为可选,所以我很困惑。