在几个开发人员在我们的一个应用程序中处理情节提要之后,我们现在尝试在 Xcode Interface Builder 中打开情节提要时遇到此错误:
无法打开文档“MainStoryboard_iPhone.storyboard”。操作无法完成。(com.apple.InterfaceBuilder 错误 -1。)
检查控制台日志以获取更多信息。
我们都在运行最新版本的 Xcode (4.6.2 4H1003),所有更改都对 Interface Builder 中的故事板进行。控制台日志中没有显示其他信息。我假设错误是指出现日志和调试语句的同一个控制台日志,它完全是空的。
当尝试在我正在开发的另一个应用程序中打开故事板时,其中一位开发人员收到了同样的错误。然而,这个故事板在我的计算机上的 Xcode 中对我来说打开得很好,所以我们当时从来没有费心去研究这个错误(这首先发生在几个月前)。但是这一次,我们都得到了同样的错误(我们中的 4 个人已经测试过在我们自己的电脑上打开它)。
我们使用 GitHub 来管理两个项目的源代码控制,使用几个不同的 Git 客户端。关于导致此错误的原因以及如何修复它的任何想法?
更新:这是尝试打开情节提要后我计算机上 /var/logs/system.log 的输出:
Jun 5 16:38:44 my-computer-host-name Xcode[271]: Exception raised while unarchiving document objects - *** -[__NSArrayM insertObject:atIndex:]: object cannot be nil
Jun 5 16:38:45 my-computer-host-name Xcode[271]: [MT] DVTAssertions: Warning in /SourceCache/IDEKit/IDEKit-2113/Framework/Classes/Editor/IDEEditorDocument.m:1364
Details: Message sent to invalidated IBStoryboardDocument instance <IBStoryboardDocument: 0x40ecc34c0>. Backtrace for invalidation:
0 0x000000010d814f86 -[IDEEditorDocument _invalidate] (in IDEKit)
1 0x000000010d883291 -[IDEEditorDocument initForURL:withContentsOfURL:ofType:error:] (in IDEKit)
2 0x00000001103005d0 -[IBDocument initForURL:withContentsOfURL:ofType:error:] (in IDEInterfaceBuilderKit)
3 0x000000010d882efd +[IDEDocumentController _newEditorDocumentWithClass:forURL:withContentsOfURL:ofType:extension:error:] (in IDEKit)
4 0x000000010d882dba -[IDEEditorContext _newEditorDocumentWithClass:forURL:withContentsOfURL:ofType:extension:error:] (in IDEKit)
5 0x000000010d88290c -[IDEEditorContext _openNavigableItem:withContentsOfURL:documentExtension:shouldInstallEditorBlock:] (in IDEKit)
6 0x000000010d991628 -[IDEEditorContext _notifyDelegateAndOpenNavigableItem:withContentsURL:documentExtensionIdentifier:locationToSelect:annotationRepresentedObject:stateDictionary:annotationWantsIndicatorAnimation:exploreAnnotationRepresentedObject:highlightSelection:] (in IDEKit)
7 0x000000010d8bfe7b -[IDEEditorContext _notifyDelegateAndOpenEditorOpenSpecifier:updateHistory:] (in IDEKit)
8 0x000000010d8bf99c -[IDEEditorContext _openEditorOpenSpecifier:updateHistory:] (in IDEKit)
9 0x000000010d8bf8ba -[IDEEditorContext openEditorOpenSpecifier:] (in IDEKit)
10 0x000000010d8cbf40 -[IDEEditorGeniusMode openEditorOpenSpecifier:editorContext:] (in IDEKit)
11 0x000000010d8bf76e -[IDEEditorArea _openEditorOpenSpecifier:editorContext:takeFocus:] (in IDEKit)
12 0x000000010d9a3174 __108+[IDEEditorCoordinator _doOpenEditorOpenSpecifier:forWorkspaceTabController:editorContext:target:takeFocus:]_block_invoke (in IDEKit)
13 0x000000010d8bf6cc +[IDEEditorCoordinator _doOpenWithWorkspaceTabController:editorContext:target:allowFallback:documentURL:usingBlock:] (in IDEKit)
14 0x000000010d8bf12d +[IDEEditorCoordinator _doOpenEditorOpenSpecifier:forWorkspaceTabController:editorContext:target:takeFocus:] (in IDEKit)
15 0x000000010d8bed45 -[_IDEOpenRequest _runIfNecessary] (in IDEKit)
16 0x00007fff8bfde395 __NSFireDelayedPerform (in Foundation)
17 0x00007fff8b169804 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ (in CoreFoundation)
18 0x00007fff8b16931d __CFRunLoopDoTimer (in CoreFoundation)
19 0x00007fff8b14ead9 __CFRunLoopRun (in CoreFoundation)
20 0x00007fff8b14e0e2 CFRunLoopRunSpecific (in CoreFoundation)
21 0x00007fff8ac57eb4 RunCurrentEventLoopInMode (in HIToolbox)
22 0x00007fff8ac57c52 ReceiveNextEventCommon (in HIToolbox)
23 0x00007fff8ac57ae3 BlockUntilNextEventMatchingListInMode (in HIToolbox)
24 0x00007fff85f5d563 _DPSNextEvent (in AppKit)
25 0x00007fff85f5ce22 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] (in AppKit)
26 0x00007fff85f541d3 -[NSApplication run] (in AppKit)
27 0x00007fff85ef8c06 NSApplicationMain (in AppKit)
28 0x000000010cbc9b6f (in Xcode)
29 0x000000010cbc9b00 (in Xcode)
30 0x0000000000000002
Object: <IBStoryboardDocument: 0x40ecc34c0>
Method: -updateChangeCount:
Thread: <NSThread: 0x40030a220>{name = (null), num = 1}
Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can provide.
这是在尝试打开另一个项目中的故事板后,另一个开发人员的计算机上的日志输出,我们得到了同样的错误(这是在我的计算机上可以正常打开的故事板):
Jun 5 17:20:13 other-dev-computer-host-name Xcode[157]: Exception raised while unarchiving document objects - *** -[__NSArrayM insertObject:atIndex:]: object cannot be nil
Jun 5 17:20:13 other-dev-computer-host-name Xcode[157]: [MT] DVTAssertions: Warning in /SourceCache/IDEKit/IDEKit-2113/Framework/Classes/Editor/IDEEditorDocument.m:1364
Details: Message sent to invalidated IBStoryboardDocument instance <IBStoryboardDocument: 0x409ec3340>. Backtrace for invalidation:
0 0x000000010d746f86 -[IDEEditorDocument _invalidate] (in IDEKit)
1 0x000000010d7b5291 -[IDEEditorDocument initForURL:withContentsOfURL:ofType:error:] (in IDEKit)
2 0x00000001102755d0 -[IBDocument initForURL:withContentsOfURL:ofType:error:] (in IDEInterfaceBuilderKit)
3 0x000000010d7b4efd +[IDEDocumentController _newEditorDocumentWithClass:forURL:withContentsOfURL:ofType:extension:error:] (in IDEKit)
4 0x000000010d7b4dba -[IDEEditorContext _newEditorDocumentWithClass:forURL:withContentsOfURL:ofType:extension:error:] (in IDEKit)
5 0x000000010d7b490c -[IDEEditorContext _openNavigableItem:withContentsOfURL:documentExtension:shouldInstallEditorBlock:] (in IDEKit)
6 0x000000010d7d9c96 -[IDEEditorContext _openNavigableItem:withContentsOfURL:shouldInstallEditorBlock:] (in IDEKit)
7 0x000000010d8c3667 -[IDEEditorContext _notifyDelegateAndOpenNavigableItem:withContentsURL:documentExtensionIdentifier:locationToSelect:annotationRepresentedObject:stateDictionary:annotationWantsIndicatorAnimation:exploreAnnotationRepresentedObject:highlightSelection:] (in IDEKit)
8 0x000000010d7f1e7b -[IDEEditorContext _notifyDelegateAndOpenEditorOpenSpecifier:updateHistory:] (in IDEKit)
9 0x000000010d7f199c -[IDEEditorContext _openEditorOpenSpecifier:updateHistory:] (in IDEKit)
10 0x000000010d7f18ba -[IDEEditorContext openEditorOpenSpecifier:] (in IDEKit)
11 0x000000010d7f189f -[IDEEditorModeViewController openEditorOpenSpecifier:editorContext:] (in IDEKit)
12 0x000000010d7f176e -[IDEEditorArea _openEditorOpenSpecifier:editorContext:takeFocus:] (in IDEKit)
13 0x000000010d8d5174 __108+[IDEEditorCoordinator _doOpenEditorOpenSpecifier:forWorkspaceTabController:editorContext:target:takeFocus:]_block_invoke (in IDEKit)
14 0x000000010d7f16cc +[IDEEditorCoordinator _doOpenWithWorkspaceTabController:editorContext:target:allowFallback:documentURL:usingBlock:] (in IDEKit)
15 0x000000010d7f112d +[IDEEditorCoordinator _doOpenEditorOpenSpecifier:forWorkspaceTabController:editorContext:target:takeFocus:] (in IDEKit)
16 0x000000010d7f0d45 -[_IDEOpenRequest _runIfNecessary] (in IDEKit)
17 0x00007fff98955395 __NSFireDelayedPerform (in Foundation)
18 0x00007fff909bd804 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ (in CoreFoundation)
19 0x00007fff909bd31d __CFRunLoopDoTimer (in CoreFoundation)
20 0x00007fff909a2ad9 __CFRunLoopRun (in CoreFoundation)
21 0x00007fff909a20e2 CFRunLoopRunSpecific (in CoreFoundation)
22 0x00007fff92e5eeb4 RunCurrentEventLoopInMode (in HIToolbox)
23 0x00007fff92e5ec52 ReceiveNextEventCommon (in HIToolbox)
24 0x00007fff92e5eae3 BlockUntilNextEventMatchingListInMode (in HIToolbox)
25 0x00007fff96036563 _DPSNextEvent (in AppKit)
26 0x00007fff96035e22 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] (in AppKit)
27 0x00007fff9602d1d3 -[NSApplication run] (in AppKit)
28 0x00007fff95fd1c06 NSApplicationMain (in AppKit)
29 0x000000010caf9b6f (in Xcode)
30 0x000000010caf9b00 (in Xcode)
31 0x0000000000000002
Object: <IBStoryboardDocument: 0x409ec3340>
Method: -updateChangeCount:
Thread: <NSThread: 0x40030a1a0>{name = (null), num = 1}
Please file a bug at http://bugreport.apple.com with this warning message and any useful information you can provide.
两个日志输出非常相似。在第 6 行的第二个输出的调用堆栈中还有一行:[IDEEditorContext _openNavigableItem:withContentsOfURL:shouldInstallEditorBlock:] (in IDEKit)
。第 11 行(第 10 行)引用了方法IDEEditorModeViewController
而不是IDEEditorGeniusMode
. 否则日志输出是相同的。
请注意,我们最初收到此错误的第二个故事板不会有 Git 合并冲突的问题,因为我是唯一一个在此故事板上工作的开发人员。我根本不需要将提交合并到这个存储库,因为我是它的唯一贡献者。