为什么在尝试将NSColorWell值绑定到某个属性时出现错误...
valueForUndefinedKey: this class is not key value coding-compliant for the key color.
如果 color 属性定义为:
@property (strong, nonatomic) MyColor *color;
和 MyColor 定义为:
typedef NSColor MyColor;
但是当 color 属性被定义为NSColor?
时,一切正常答案 0 :(得分:2)
您似乎发现了一个错误,因为typedef
应该是透明的而不是改变行为。
测试显示:
typedef AnyOldClass SomeOldClass;
和不同类中的属性:
@property AnyOldClass *anyclass; // from class A
@property SomeOldClass *someclass; // from class B
然后尝试将to绑定到bind:toObject:withKeyPath:options:
失败。如果typedef用于值类型(例如double
),它似乎有效(即非穷举测试)。
此外,如果更改为 ,则可以工作。
typedef AnyOldClass *SomeOldClass;
和
@property SomeOldClass someclass; // from class B
这是typedef用于指针类型本身。然而,不是强调可以,它在编译之间似乎并不一致 - 如果它适用于二进制文件它总是适用于该二进制文件,但重新编译可能会破坏它。
我没有检查过元数据(至少还有......)
奇怪而有趣。向Apple报告,除非有人尽快提出解释。
在Xcode 5.0.2 / Clang 4.2上完成测试