objective-c - presentViewController : crash on iOS

这是我遇到的奇怪崩溃。当我按下一个转到某个 ViewController 的按钮时,就会发生崩溃。它崩溃的行是:

DestinationInformationViewController *info = [[DestinationInformationViewController alloc] init];
[info setModalTransitionStyle: UIModalTransitionStyleCrossDissolve];
[self presentViewController:info animated:YES completion: nil]; // CRASHES HERE
[info release];

崩溃跟踪是:

*** 由于未捕获的异常“NSInvalidUnarchiveOperationException”而终止应用程序,原因:“无法实例化名为 NSLayoutConstraint 的类” *** 首先抛出调用堆栈: (0x3758288f 0x35287259 0x37582789 0x375827ab 0x3153d54d 0x3153d6bb 0x3153d423 0x314ce001 0x3143c3c7 0x31319c59 0x3128fc17 0x3129a267 0x3129a1d5 0x3133959b 0x31338367 0x84091 0x374dc3fd 0x31271e07 0x31271dc3 0x31271da1 0x31271b11 0x31272449 0x3127092b 0x31270319 0x31256695 0x31255f3b 0x33c9822b 0x37556523 0x375564c5 0x37555313 0x374d84a5 0x374d836d 0x33c97439 0x31284cd5 0x82bb3 0x71200) 终止调用抛出异常(gdb)无法实例化名为 NSLayoutConstraint 的类

注意:这会在我的 iPhone 4 iOS 5.1 上崩溃,但不会在我的 iPhone 4S iOS 6 Beta 2 上崩溃

最佳答案

我相信这是 Xcode 的新界面生成器的问题。您是否碰巧使用 Xcode 4.5 的界面构建器构建了您的 .xib?我刚才遇到了同样的问题,我认为这就是问题所在。我的应用在 iOS 6 上运行,但不是任何旧版本。

您需要确保为您的 xib 关闭 使用自动布局

这可以通过以下方式完成:

  1. 打开你的 xib。
  2. 转到文件检查器选项卡。
  3. 在右侧工具栏上找到 Interface Builder Document 部分。
  4. 取消选中 使用自动布局 选项。

关于objective-c - presentViewController : crash on iOS <6 (AutoLayout),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11198981/

相关文章:

ios - UICollectionView 的 cellForItemAtIndexPath 没有

objective-c - 是什么让钥匙串(keychain)项目独一无二(在 iOS 中)?

ios - 无法在模拟器中运行应用程序 : An error was encountered whi

objective-c - 将 writeToFile :atomically: overwrite

objective-c - 如何将 NSInteger 转换为 int?

ios - 如何检查 UILabel 是否被截断?

objective-c - 如何在运行时使用 Objective-C 动态创建选择器?

java - Java接口(interface)和Objective-C协议(protocol)的区

iphone - Xcode 4.2 首选项 "Support Wirelessly Connect

iphone - iPhone 上的 JSON 和核心数据