【发布时间】:2011-05-20 17:36:52
【问题描述】:
我使用这样的 NIB 文件的内容创建了一个 UIView 对象:
self.results = [[[NSBundle mainBundle] loadNibNamed:@"ResultsView" owner:self options:nil] lastObject];
self.results.frame = CGRectMake(0, 0, 320, 500);
但self.results 实际上是UIView 的子类:
@interface GameResultsView : UIView {
UILabel *title;
}
@property (nonatomic, retain) IBOutlet UILabel *title;
@end
我已通过 Interface Builder 将GameResults 中定义的title 属性与UILabel 对象连接起来。但是在执行过程中,当视图分配给self.results 时,应用程序会停止并显示SIGABRT 消息:
-[UILabel copyWithZone:]: unrecognized selector sent to instance 0x4c2f780
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UILabel copyWithZone:]: unrecognized selector sent to instance 0x4c2f780'
标签似乎根本无法连接。这样做的正确方法是什么(如果有的话)?我的目的是将此自定义视图添加到 UIScrollView 对象。
谢谢!
更新:我使用的是 Xcode 4
【问题讨论】:
-
@elitalon 你使用的是 XCode3 还是 4?
-
@Nick Weaver 我正在使用 Xcode 4
-
@elitalon 在 IB 中选择您的自定义视图 GameResultsView,然后打开实用程序,然后选择身份检查器。自定义类字段说明了什么?
-
@Nick Weaver 我已将其设置为 GameResultsView。
-
@elitalon 你有没有合成标签的访问器方法?是 GameResultsView * 类型的 self.results 吗?你能确保 NSBundle/loadNibNamed 返回你的视图并且是正确的类吗?
标签: uiview subclass nib iboutlet