Objective c 可可装订为何获胜';不能使用框架类的typedef
尝试将NSColorWell值绑定到某些属性时出错的原因Objective c 可可装订为何获胜';不能使用框架类的typedef,objective-c,cocoa,typedef,cocoa-bindings,Objective C,Cocoa,Typedef,Cocoa Bindings,尝试将NSColorWell值绑定到某些属性时出错的原因 valueForUndefinedKey: this class is not key value coding-compliant for the key color. 如果颜色属性定义为: @property (strong, nonatomic) MyColor *color; typedef NSColor MyColor; 而MyColor的定义是: @property (strong, nonatomic) MyCo
valueForUndefinedKey: this class is not key value coding-compliant for the key color.
如果颜色属性定义为:
@property (strong, nonatomic) MyColor *color;
typedef NSColor MyColor;
而MyColor的定义是:
@property (strong, nonatomic) MyColor *color;
typedef NSColor MyColor;
但是,当颜色属性定义为NSColor时,一切正常。您似乎发现了一个bug,因为
typedef
应该是透明的,并且不会改变行为
测试表明:
typedef AnyOldClass SomeOldClass;
以及不同类别的物业:
@property AnyOldClass *anyclass; // from class A
@property SomeOldClass *someclass; // from class B
然后尝试使用bind:toObject:withKeyPath:options:
绑定到失败。如果typedef用于值类型(例如,double
),则它看起来确实有效(即非穷举测试)
此外,如果将其更改为:
typedef AnyOldClass *SomeOldClass;
及
也就是说,typedef用于指针类型本身。然而,并不是强调can,它在编译之间似乎并不一致——如果它适用于二进制文件,它总是适用于该二进制文件,但重新编译可能会破坏它
我还没有检查元数据(至少还没有…)
诡异而有趣。除非有人马上解释,否则就向苹果报告
在Xcode 5.0.2/Clang 4.2上进行测试