Objective c 设置自定义UIView实例的属性时出现无法识别的选择器错误
在一个项目(XCode 4,iOS 5,带ARC)中,我有一个UIView的子类,具有布尔属性:Objective c 设置自定义UIView实例的属性时出现无法识别的选择器错误,objective-c,xcode,ipad,ios5,Objective C,Xcode,Ipad,Ios5,在一个项目(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,
// 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'
有什么帮助吗
谢谢。为
ViewController
布局视图时,请确保标识检查器将您的视图标识为图表而不是UIView
,并且正确的视图链接到控制器中的架构
出口
当前,根据错误消息,运行时认为schema
是一个普通的UIView
。在视图XIB(图的位置)中,单击图视图
在右侧面板中,选择第三个选项卡,然后可以更改对象类(第一个名为“custom class”的字段)。实际上,它应该是UIView。将其设置为“图表”。找到它
图.m未在目标>构建阶段>编译源代码中列出。标识检查器将我的视图正确标识为图。在NIB>连接检查器>出口中,架构连接到图。测试:在视图控制器的“viewDidLoad:`中,放入NSLog(@“schema:%@”,self.schema)代码>查看加载nib时正在创建什么类型的对象。测试结果:模式:因此,很明显,nib中存在一些不完全正确的连接或属性,但除了您已经检查的内容之外,很难猜测。该框架是否与您希望连接到架构的视图匹配?在我的例子中,问题是我没有将自定义类设置为视图控制器!