当从不同的故事板上复制/粘贴视图时,Xcode 11崩溃


18

我在Catalina上运行的Xcode 11出现问题(与Moave发生了同样的问题)。当我尝试将视图或ViewController从一个故事板复制/粘贴到另一个Xcode时,发生崩溃,但出现以下异常:

...
Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Application Specific Information:
Sending paste: to IBStructureAreaDockView from <NSMenuItem: 0x7fe24030ddd0 Paste>
ProductBuildVersion: 11A1027
ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources/IDEInterfaceBuilder/IDEInterfaceBuilder-15400/InterfaceBuilderKit/WidgetIntegration/View/IBViewIntegration.m:2451
Details:  There should only be 1 parent of all the constraint items extracted from the pasteboard: {(
)}
Object:   <IBUIView: 0x7fe23db1c600>
Method:   -ibDidExtractObjects:fromPasteboard:intoDocument:context:
Thread:   <NSThread: 0x7fe23ac17e80>{number = 1, name = main}
Hints:   
  0: Sending paste: to IBStructureAreaDockView from <NSMenuItem: 0x7fe24030ddd0 Paste>
Backtrace:
  0   -[IDEAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in IDEKit)
  1   _DVTAssertionHandler (in DVTFoundation)
  2   _DVTAssertionFailureHandler (in DVTFoundation)
  3   -[NSView(IBViewIntegration) ibDidExtractObjects:fromPasteboard:intoDocument:context:] (in IDEInterfaceBuilderKit)
  4   -[IBUIView(IBUIViewIntegration) ibDidExtractObjects:fromPasteboard:intoDocument:context:] (in IDEInterfaceBuilderCocoaTouchIntegration)
  5   -[IBDocument ibDidExtractObjects:fromPasteboard:context:] (in IDEInterfaceBuilderKit)
  6   -[IBDocument insertObjectsFromPasteboard:ofType:asChildrenOfObject:atIndex:context:finishExtractingObjectsBlock:] (in IDEInterfaceBuilderKit)
  7   -[IBDocument insertOrMoveChildrenFromPasteboard:ofType:asChildrenOfObject:atIndex:context:finishExtractingObjectsBlock:] (in IDEInterfaceBuilderKit)
  8   -[IBDocument addOrMoveChildrenFromPasteboard:ofType:toObject:context:finishExtractingObjectsBlock:] (in IDEInterfaceBuilderKit)
  9   -[IBStoryboardDocument addOrMoveChildrenFromPasteboard:ofType:toSceneGroup:context:] (in IDEInterfaceBuilderKit)
 10   -[IBSceneDockViewController performDockPasteWithPasteboard:context:] (in IDEInterfaceBuilderKit)
 11   -[IBSceneDockViewController dockViewPerformPaste:] (in IDEInterfaceBuilderKit)
 12   -[IBStructureAreaDockView paste:] (in IDEInterfaceBuilderKit)
 13   -[NSApplication(NSResponder) sendAction:to:from:] (in AppKit)
 14   __37-[DVTApplication sendAction:to:from:]_block_invoke.86 (in DVTKit)
 15   DVTInvokeWithFailureHint (in DVTFoundation)
 16   -[DVTApplication sendAction:to:from:] (in DVTKit)
 17   -[NSMenuItem _corePerformAction] (in AppKit)
 18   -[NSCarbonMenuImpl performActionWithHighlightingForItemAtIndex:] (in AppKit)
 19   -[NSMenu performKeyEquivalent:] (in AppKit)
 20   routeKeyEquivalent (in AppKit)
 21   -[NSApplication(NSEvent) sendEvent:] (in AppKit)
 22   -[IDEApplication sendEvent:] (in IDEKit)
 23   -[NSApplication run] (in AppKit)
 24   NSApplicationMain (in AppKit)
 25   main (in Xcode)
 26   start (in libdyld.dylib)

Performing @selector(paste:) from sender NSMenuItem 0x7fe24030ddd0
abort() called

Application Specific Signatures:
[parentsOfItemsInConstraints count] == 1
...

这是发生在别人身上吗?故事板不支持此功能吗?


这绝对是Xcode的错误,因此,您最好的办法是在Apple的反馈助手
Alladinian,

1
同样在这里,我可以确认将viewController从一个情节提要板上复制/粘贴到另一个情节提要中会导致Xcode 11(Mojave)崩溃。
Szilveszter Zsigmond

同样在这里,Xcode在复制和粘贴时不断崩溃。 cmd + D如果您想要的是在同一个Storyboard中复制单个viewController,则可以正常工作,但是我需要复制并粘贴到其他Storyboard。
fs_tigre,

更新-现在,在删除我安装的其他版本的Xcode之后,它刚刚开始正常工作。也许其他版本引起了问题,我不知道,但这是我遇到问题后唯一要做的事情,现在我可以在不同的Storyboard之间复制和粘贴View Controller,而不会导致Xcode 11崩溃。
fs_tigre

Answers:



9

Xcode-> Preferences-Locations单击“派生数据”下方的小箭头,然后删除该文件夹。完成此操作后,我可以在故事板之间剪切和粘贴。


非常感谢,这是在应对了另一个项目的故事板上的某些场景之后的合适解决方案。
Miguel A.

这是Xcode 11.3中唯一对我
有用的

伟大的工作完美...!
Aqib Zareen

8

这里同样的问题。我认为这是新Xcode 11的错误。

找到了一个快速的解决方法。可以使用cmd + D复制视图控制器,而不是复制和粘贴会导致Xcode崩溃的视图控制器。但这仅在同一个情节提要中有用


1
感谢百万
彼得·菲亚拉19'Oct

4

选择View Controller,编辑>复制

在另一个情节提要上,编辑>粘贴


在此之后仍然崩溃的Xcode版本11.1(11A1027)
Mohit

2

我发现了一个快速破解方法,请转到项目导航器,然后右键单击.storyboard文件,然后选择“打开”作为源代码。

您将以xml格式获取情节提要,搜索并复制控制器的类,然后以与复制情节提要相同的方式粘贴到另一个情节提要中。确保获取视图控制器的完整代码。

            <!--Detail View Controller-->
    <scene sceneID="n6l-mp-H1E"> .... </scene>

完美的解决方案。为我工作
Akash Bhardwaj

0

两种可能的情况:

  • 您必须将一个项目复制并粘贴到另一个项目;
  • 或在同一项目中,但在不同或同一情节提要中。

您可以通过关闭在后台运行的仿真器,然后进行复制和粘贴,或者通过从故事板(XML格式)进行复制和粘贴来进行修复。


0

我发现,与其选择场景,不如选择视图控制器并执行复制并粘贴到新的情节提要中,这是可行的。

在此处输入图片说明


0

在粘贴整个情节提要时,似乎内核有问题,但这仅在模拟器应用程序打开时才会发生。关闭模拟器应用,然后尝试将其粘贴完美



0

我经常面对这个问题,似乎是由于新版本的Xcode。

这是对我有用的解决方案。

删除派生数据并重新启动XCode。

清理并构建项目。

确保XCode在以下任务中不忙:

  • 建筑工程

  • 索引编制(等待完成)

  • 运行项目

  • 情节提要开幕

现在,您可以尝试将一个视图控制器从一个情节提要板复制到另一个情节提要。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.