2

在一个项目(XCode 4、iOS 5、ARC)中,我有一个 UIView 的子类,它有一个布尔属性:

 // Diagram.h
 @interface Diagram : UIView 
 @property (assign) BOOL  flag;
 @end

 // Diagram.m
 @implementation Diagram
 @synthesize flag; 
 ...

在主视图控制器中:

 // ViewController.h
 @property (nonatomic, strong) IBOutlet Diagram *schema;
 ...

 // ViewController.m
 @synthesize schema;
 ...
 schema.flag = NO;
 ...

最后一行导致此错误:

 Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView setFlag:]: unrecognized selector sent to instance 0xb07e660'

有什么帮助吗?

谢谢你。

4

3 回答 3

4

在布置视图时,请ViewController确保身份检查器将您的视图标识为 aDiagram而不是 a UIView,并且正确的视图链接到schema控制器中的插座。

目前,运行时根据错误消息认为这schema是一个 plain 。UIView

于 2012-06-28T12:23:41.143 回答
2

找到了!

Diagram.m 未列在目标 > 构建阶段 > 编译源中。

于 2012-07-11T10:07:07.030 回答
0

在您的视图 XIB(图表在哪里)中,单击图表视图。

在右侧面板中,选择第三个选项卡,然后您可以更改对象类(第一个字段名为“自定义类”)。其实应该是UIView。将其设置为“图表”。

于 2012-06-28T12:32:21.013 回答