0

我正用头撞砖墙。我正在尝试以通常的方式将视图推送到 UINavigationController 上:

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

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

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

现在,我用 XCode 提供的模板替换了有问题的 ViewController,但我没有收到错误,所以问题一定出在我的 UIViewController 类上。此外,如果我将笔尖名称替换为模板 UIViewController 类的名称,它就可以工作。即

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

这让我认为问题实际上出在笔尖上,而不是课程本身。我检查了所有连接,没有错误或警告。

希望有人可以提供帮助。

谢谢

4

3 回答 3

1

我正在处理一个与您类似的非常令人沮丧的错误,并且一切就绪。新创建的 xib 被添加到 Bundle 资源中,没有 nil 指针或释放指针,设置了 NSZombieEnabled。文件的所有者也设置为正确的 ViewController

和学长坐了30分钟后,我们终于明白哪里不对了——

在新创建的 Xib 中,即使您将文件的所有者分配给 ViewController,您还需要采取额外的步骤。您还需要将主视图的引用插座设置为文件的所有者。最简单的方法是将引用出口(从连接检查器)上的“+”号拖到文档大纲中的“文件所有者”。在此之后,您只需要单击弹出的“查看”,您应该会很好。

希望对您或其他面临同样问题的人有所帮助

于 2013-09-27T17:06:53.550 回答
0

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

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

有多种可能性。

希望这能提供一个见解。

于 2013-01-04T10:28:32.650 回答
0

检查您的 nib 是否已添加到应用程序包中。你可以通过选择你的项目文件->构建阶段->复制捆绑资源来做到这一点。如果它不存在,请添加它。

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

我希望它有所帮助。

于 2013-01-04T10:17:40.477 回答