我有一个UIViewController我从xib文件加载并推送到导航控制器堆栈.
在View Controller的头文件中,我有:
IBOutlet UILabel *myTitle;
Run Code Online (Sandbox Code Playgroud)
我在代码中没有对"myTitle"做任何事情; 我刚刚建立了连接.
当我编译并运行应用程序时,xib文件中没有定义标签(因此,没有附加到IBOutlet上),它可以工作.视图控制器动画进入视图就好了,显示了我在Interface builder中构建的视图.
如果我在界面构建器中向xib添加标签,但没有将其连接到插座,并重新编译,它仍然有效,显示标签,其中包含我为其输入的默认文本.
但是,如果我将IBOutlet myTitle连接到界面构建器中的标签,重新编译并运行应用程序,它会正常工作,直到我尝试将视图控制器推到导航控制器的堆栈上,此时我遇到了崩溃:
*** -[UILabel copyWithZone:]: unrecognized selector sent to instance 0x4558e20
Run Code Online (Sandbox Code Playgroud)
如果我再次断开插座,它会恢复工作,如前所示显示静态标签.当视图显示时,似乎有一些时髦的事情发生,因为当我将视图推到导航堆栈时发生了崩溃.
我不应该将一个IBOutlet添加到UILabel或其他什么东西?或者还有其他事情发生了吗?关于在哪里寻找麻烦的任何建议?
是的,它可能是由错误的参数名称引起的,例如试试这个:
IBOutlet UILabel title;
Run Code Online (Sandbox Code Playgroud)
它会像这样调用异常:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UILabel copyWithZone:]: unrecognized selector sent to instance 0x143f520'
Run Code Online (Sandbox Code Playgroud)
您是否为IBOutlet创建了一个存取器?
@property (assign) IBOutlet UILabel *myTitle;
Run Code Online (Sandbox Code Playgroud)
然后,在你的.m文件中
@synthesize myTitle
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7604 次 |
| 最近记录: |