Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 可可装订为何获胜';不能使用框架类的typedef_Objective C_Cocoa_Typedef_Cocoa Bindings - Fatal编程技术网

Objective c 可可装订为何获胜';不能使用框架类的typedef

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

尝试将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) 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上进行测试