【问题标题】:Terminating app: Could not load NIB in bundle: 'NSBundle ...' with name '7bK-jq-Zjz-view-r7i-6Z-zg0'终止应用程序:无法在包中加载 NIB:“NSBundle ...”,名称为“7bK-jq-Zjz-view-r7i-6Z-zg0”
【发布时间】:2015-06-19 07:59:20
【问题描述】:

该应用在 iphone 模拟器中运行时运行良好,但在 ipad 视网膜模拟器中运行时,我看到此崩溃:

2015-04-15 18:39:13.814 [17308:2881892] *** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法在包中加载 NIB:“NSBundle .app>(已加载)”名称为 '7bK-jq-Zjz-view-r7i-6Z-zg0''

不知道发生了什么。我没有这个奇怪名称的 nib/xib 文件:'7bK-jq-Zjz-view-r7i-6Z-zg0'

我已经有一段时间没有尝试运行 ipad 模拟器了。我同时发生了一些大的变化(我不确定这是否导致了这个问题): 1.重命名项目 2. 升级到 Swift 1.2 。将项目恢复到此更改之前无济于事,因为 Sift 已经在 1.2 上。

我将如何解决它?

更新

我查看了情节提要源代码(根据 Kamal 的建议),发现“7bK-jq-Zjz”是表格视图控制器的 ID(此控制器是选项卡栏控制器的第一个选项卡,它依次是拆分视图控制器的主视图)。

奇怪代码的第二部分,“r7i-6Z-zg0”,原来是上述表格视图控制器中表格视图的 ID。

我尝试了两件事:

  1. 重新创建了拆分视图控制器和标签栏控制器。与 ipad 模拟器相同的崩溃(仍然 iphone 模拟器运行良好)。
  2. 重新创建了麻烦的表视图控制器。仍然看到相同的崩溃,现在使用不同的代码/签名,因为 ID 现在是新的(对于新创建的表和表视图控制器)。

这是新的崩溃:

2015-04-17 22:10:01.427 [33373:6444860] *** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法在包中加载 NIB:“NSBundle .app>(已加载)”名称为“3hh-RB-vwq-view-1d1-Kq-Vzm”

如前所述,iPhone 模拟器运行良好 - iPad 不行。但 iPhone 6 plus 有时会在定向到横向模式时崩溃(即当拆分视图未折叠时)。

--结束更新

*** First throw call stack:
(
    0   CoreFoundation                      0x0031f746 __exceptionPreprocess + 182
    1   libobjc.A.dylib                     0x01f33a97 objc_exception_throw + 44
    2   CoreFoundation                      0x0031f66d +[NSException raise:format:] + 141
    3   UIKit                               0x0109fe2f -[UINib instantiateWithOwner:options:] + 1003
    4   UIKit                               0x00eba124 -[UIViewController _loadViewFromNibNamed:bundle:] + 270
    5   UIKit                               0x00eba8bb -[UIViewController loadView] + 295
    6   UIKit                               0x010c069e -[UITableViewController loadView] + 77
    7   UIKit                               0x00ebaaef -[UIViewController loadViewIfRequired] + 78
    8   UIKit                               0x00ebb095 -[UIViewController view] + 35
    9   UIKit                               0x00f0ad2f -[UITabBarController transitionFromViewController:toViewController:transition:shouldSetSelected:] + 426
    10  UIKit                               0x00f0a36f -[UITabBarController transitionFromViewController:toViewController:] + 64
    11  UIKit                               0x00f0652b -[UITabBarController _setSelectedViewController:] + 339
    12  UIKit                               0x00f062e5 -[UITabBarController setSelectedIndex:] + 115
    13  UIKit                               0x00f05e91 __51-[UITabBarController _setViewControllers:animated:]_block_invoke394 + 43
    14  UIKit                               0x00ddfd4f +[UIView(Animation) performWithoutAnimation:] + 82
    15  UIKit                               0x00f05d3d -[UITabBarController _setViewControllers:animated:] + 3627
    16  UIKit                               0x00f04403 -[UITabBarController _updateLayoutForTraitCollection:] + 302
    17  UIKit                               0x00f03e73 __80-[UITabBarController willTransitionToTraitCollection:withTransitionCoordinator:]_block_invoke + 69
    18  UIKit                               0x0125f107 -[_UIViewControllerNullAnimationTransitionCoordinator _applyBlocks:releaseBlocks:] + 198
    19  UIKit                               0x0125ed9a -[_UIViewControllerNullAnimationTransitionCoordinator _runAlongsideAnimations] + 148
    20  UIKit                               0x00ed8063 -[UIViewController(UIContainerViewControllerProtectedMethods) setOverrideTraitCollection:forChildViewController:] + 399
    21  UIKit                               0x01248a10 -[UISplitViewController _setMasterOverrideTraitCollectionActive:] + 127
    22  UIKit                               0x0124435a -[UISplitViewController initWithCoder:] + 112
    23  UIKit                               0x0122392e UINibDecoderDecodeObjectForValue + 739
    24  UIKit                               0x01223643 -[UINibDecoder decodeObjectForKey:] + 371
    25  UIKit                               0x010a0c1a -[UIRuntimeConnection initWithCoder:] + 189
    26  UIKit                               0x0122392e UINibDecoderDecodeObjectForValue + 739
    27  UIKit                               0x01223b30 UINibDecoderDecodeObjectForValue + 1253
    28  UIKit                               0x01223643 -[UINibDecoder decodeObjectForKey:] + 371
    29  UIKit                               0x0109fed0 -[UINib instantiateWithOwner:options:] + 1164
    30  UIKit                               0x0135d185 -[UIStoryboard instantiateViewControllerWithIdentifier:] + 220
    31  UIKit                               0x0135d301 -[UIStoryboard instantiateInitialViewController] + 74
    32  UIKit                               0x00d556fc -[UIApplication _loadMainStoryboardFileNamed:bundle:] + 79
    33  UIKit                               0x00d55984 -[UIApplication _loadMainInterfaceFile] + 245
    34  UIKit                               0x00d542f4 -[UIApplication _runWithMainScene:transitionContext:completion:] + 1337
    35  UIKit                               0x00d6d93e __84-[UIApplication _handleApplicationActivationWithScene:transitionContext:completion:]_block_invoke + 59
    36  UIKit                               0x00d5304a -[UIApplication workspaceDidEndTransaction:] + 155
    37  FrontBoardServices                  0x0451ec9e __37-[FBSWorkspace clientEndTransaction:]_block_invoke_2 + 71
    38  FrontBoardServices                  0x0451e72f __40-[FBSWorkspace _performDelegateCallOut:]_block_invoke + 54
    39  FrontBoardServices                  0x04530d7c __31-[FBSSerialQueue performAsync:]_block_invoke_2 + 30
    40  CoreFoundation                      0x00241050 __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 16
    41  CoreFoundation                      0x00236963 __CFRunLoopDoBlocks + 195
    42  CoreFoundation                      0x002367bb __CFRunLoopRun + 2715
    43  CoreFoundation                      0x00235a5b CFRunLoopRunSpecific + 443
    44  CoreFoundation                      0x0023588b CFRunLoopRunInMode + 123
    45  UIKit                               0x00d52a02 -[UIApplication _run] + 571
    46  UIKit                               0x00d56106 UIApplicationMain + 1526
    47  IDZZZ                               0x000a3ad4 main + 180
    48  libdyld.dylib                       0x02644ac9 start + 1

【问题讨论】:

  • 您链接的任何第三方库都可能具有该笔尖?
  • 这是完整的错误信息吗?想知道“……”。如果不是,请将其添加到问题中。
  • 我用完整的错误代码更新了问题。没有使用第三方库。
  • 我没有找到一个可以接受的答案,但这个有很多赞成票:stackoverflow.com/questions/8689235/…
  • 嘿伙计尝试一件事,右键单击您的情节提要并使用源代码打开。在那里你会看到 xib 和编码。在那里你搜索这个看起来很奇怪的文本(笔尖名称)。如果你在那里发现了什么,请告诉我。

标签: ios xcode swift


【解决方案1】:

我从 iOS 8.3 开始就有这个问题,昨天终于解决了。我曾希望这个问题会在 iOS 8.4 中得到解决,但事实并非如此,所以我假设它不被视为错误。

我有一个带有 2 个 UINavigationControllers 作为主/详细视图的 UISplitViewController。主视图 UINavigationController 有一个 UITabBarController。当这失败时,有 3 个 UITableViewControllers 作为 UITabBarController 的子视图。该错误正是您所拥有的:iOS 8.3+ 在尝试加载选项卡栏的第一个子视图时抛出错误,即使“笔尖”肯定存在于情节提要中并且在 iPhone 上工作正常。

对我来说,解决方法是在 UITabBarController 和每个 UITableViewController 子视图之间插入一个 UINavigationController。因此,UITabBarController 与 3 个 UITableViewController 的“视图控制器”关系取代了 UITabBarController 现在与 3 个 UINavigationController 的“视图控制器”关系,并且每个 UINavigationController 都与其中一个 UITableViewController 具有“根视图控制器”关系。

这可能为时已晚,但我希望它对某人有所帮助。

【讨论】:

  • 太棒了!奇迹般有效。非常感谢。
  • 谢谢。可能应该写一些关于使用 TabBarController 和导航控制器之间的东西。
【解决方案2】:

你在使用 UISplitController 吗?在这种情况下,我解决了我的问题,删除了故事板 segue 以获取 master 和 detail 并以编程方式添加它们

【讨论】:

  • 是的,我正在使用拆分视图控制器。不过,需要学习如何以编程方式添加这些 segues。一旦我这样做了,就会恢复。感谢您的建议。
  • 是的,这确实可以解决这个错误。但是,这确实是一个错误,因为您不必这样做。雷达中是否存在错误。
  • lostintranslation,您能否指点一下如何做到这一点?
  • 在情节提要中为您的详细视图和主视图设置情节提要 ID。要从情节提要中获取您的详细信息和主视图,请在此处查看:stackoverflow.com/questions/8186375/…。之后只需设置您的拆分视图控制器视图, svc.viewControllers = @[masterVC, detailVC];
【解决方案3】:

你确定你包括了所有东西吗?确保选择所有故事板并在侧边栏中的第一个选项卡中添加到会员资格。

【讨论】:

  • 项目中只有一个storyboard。它列在“复制捆绑资源”中(在构建中勾选了“目标成员资格”)。还有其他应该“包含”的地方吗?资源中列出的另一件事是“Images.xcassets”文件。我需要更多/其他吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-03
  • 1970-01-01
  • 1970-01-01
  • 2012-09-19
  • 1970-01-01
  • 2012-09-25
  • 1970-01-01
相关资源
最近更新 更多