Xcode提供以下编译器错误。
我认为它抱怨使用NSLayoutAttribute
枚举。如果它抱怨这个,为什么它不抱怨NSLayoutRelation
enum。如何以与Objective-C兼容的方式编写此方法。
答案 0 :(得分:1)
我认为这是因为Objective C对象不能包含非NSObjects的数组。
为未来的搜索者编辑: 使用AnyObject擦除类型会使警告消失,但是您需要注意投射。
答案 1 :(得分:0)
您收到此错误的原因(即使在继承自NSObject
的类中)是因为某些Swift类型无法在Objective-C中表示,例如array of enums。
[[NSLayoutAttribute]]
无效,但[[Int]]
将无效,因为Array<SomeEnumType>
无法桥接,Int
数组会隐式桥接到NSArray
{ {1}}对象通过基金会。
Yoav Schwartz的回答是错误的,因为Objective-C对象可以拥有不是NSNumber
s的数组。查看C数组:NSObject
在Objective-C中有效。但是,NSUInteger someNums[5] = {1, 2, 3, 4, 5};
不能保存值类型并且必须保存对象。