加载.xib时出错 - 应用程序崩溃

时间:2013-01-04 10:09:51

标签: objective-c ios interface-builder exc-bad-access

我正撞着一堵砖墙。我试图以通常的方式将视图推送到UINavigationController:

[[self navigationController]pushViewController:vc animated:YES];

当我这样做时,应用程序崩溃并出现以下错误:

 __CFStringEncodeByteStream + 17
Thread 1: EXC_BAD_ACCESS (code=2,address=xxxxx)

现在,我已经使用XCode提供的模板替换了有问题的ViewController,我没有收到错误,所以问题必须在我的UIViewController类中。此外,如果我将nib名称替换为模板UIViewController类的名称,它可以工作.i.e。

MyViewController *myVc = [[MyViewController alloc]initWithNibName:@"XCodeViewController" bundle:nil];

这让我觉得问题实际上是与笔尖有关,而不是类本身。我检查了所有连接,没有错误或警告。

希望有人可以提供帮助。

由于

3 个答案:

答案 0 :(得分:1)

我正在处理一个类似于你的非常令人沮丧的错误,一切都已到位。 新创建的xib被添加到Bundle资源,没有nil指针或释放指针,NSZombieEnabled被设置。文件的所有者也被设置为正确的ViewController

与我的大四学生坐了30分钟后,我们终于意识到出了什么问题 -

在新创建的Xib中,即使将文件所有者分配给ViewController,还需要执行一个额外的步骤。 您还需要将主View的引用Outlet设置为File的所有者。最简单的方法是将引用插座上的“+”符号(从“连接”检查器)拖到“文档大纲”中的“文件所有者”。在此之后你只需要点击弹出的“视图”就可以了。

希望能帮助您或其他任何面临同样问题的人

答案 1 :(得分:0)

检查您的笔尖是否已添加到应用程序包中。您可以通过选择项目文件来执行此操作 - >构建阶段 - >复制捆绑资源。 如果不存在,请添加它。

昨天我遇到了同样的问题,这就是问题所在。

我希望它有所帮助。

答案 2 :(得分:0)

需要更多信息才能回答,我可以提供一些可能性。

检查您的身份检查器中是否正确映射了类名。 并检查你的连接。如果您的视图映射到xib。等。 如果您在6.0以下的操作系统中运行该应用程序使用自动布局等功能构建,会导致崩溃。

有多种可能性。

希望这能提供见解。

相关问题