Xcode 11 stürzt beim Kopieren / Einfügen von Ansichten aus verschiedenen Storyboards ab


18

Ich habe ein Problem mit Xcode 11 auf Catalina (es hatte das gleiche Problem mit Moave). Wenn ich versuche, eine Ansicht oder einen ViewController von einem Storyboard in ein anderes zu kopieren / einzufügen, stürzt Xcode mit der folgenden Ausnahme ab:

...
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
...

Passiert es jemand anderem? Wird dies vom Storyboard nicht unterstützt?


Dies ist definitiv ein Xcode-Fehler. Das Beste, was Sie tun können, ist, ihn auf Apples Feedback-Assistent
Alladinian

1
Gleich hier kann ich bestätigen, dass das Kopieren / Einfügen von viewController von einem Storyboard in ein anderes Xcode 11 (Mojave) zum Absturz bringt.
Szilveszter Zsigmond

Auch hier stürzt Xcode beim Kopieren und Einfügen immer wieder ab. cmd + Dfunktioniert, wenn Sie einen einzelnen viewController innerhalb desselben Storyboards duplizieren möchten. Ich muss ihn jedoch kopieren und in ein anderes Storyboard einfügen.
fs_tigre

UPDATE - Jetzt funktioniert es einwandfrei, nachdem andere von mir installierte Versionen von Xcode gelöscht wurden. Vielleicht haben die anderen Versionen das Problem verursacht, ich weiß es nicht, aber es ist das einzige, was ich nach Problemen getan habe. Jetzt kann ich View Controller zwischen verschiedenen Storyboards kopieren und einfügen, ohne dass Xcode 11 abstürzt.
fs_tigre

Antworten:


11

Das Problem für mich war, dass ich die App im Hintergrund laufen ließ. Nach dem Schließen des Emulators konnte ich kopieren / ausschneiden und einfügen (auch in verschiedenen Storyboard-Dateien).


Das hat bei mir funktioniert!
Bijoy Thangaraj

Das hat bei mir total geklappt! Vielen Dank!!
josher932

9

Xcode-> Einstellungen-Standorte Klicken Sie auf den kleinen Pfeil unter "Abgeleitete Daten" und löschen Sie diesen Ordner. Danach konnte ich zwischen Storyboards ausschneiden und einfügen.


Vielen Dank. Dies ist eine geeignete Lösung, nachdem Sie einige Szenen aus dem Storyboard eines anderen Projekts kopiert haben.
Miguel A.

Dies ist das einzige, was für mich in Xcode 11.3
Binsnoel

tolles Arbeiten perfekt ...!
Aqib Zareen

8

Gleiches Problem hier. Ich denke, es ist ein Fehler mit dem neuen Xcode 11.

Es wurde eine schnelle Problemumgehung gefunden. Anstatt Ansichts-Controller zu kopieren und einzufügen, die zum Absturz von Xcode führen, können Sie die Ansichts-Controller mit cmd + D duplizieren. Dies ist jedoch nur dann nützlich, wenn Sie sich im selben Storyboard befinden


1
Vielen Dank
Petr Fiala

4

Wählen Sie View Controller, Edit> Copy

In einem anderen Storyboard Bearbeiten> Einfügen


Nach diesem Absturz stürzt der Xcode Version 11.1 (11A1027)
Mohit G.

2

Ich habe einen schnellen Hack gefunden, gehe zu deinem Projektnavigator, klicke mit der rechten Maustaste auf deine .storyboard-Datei und wähle Öffnen als Quellcode.

Sie erhalten Ihr Storyboard im XML-Format, suchen und kopieren die Klasse des Controllers und fügen sie auf die gleiche Weise ein, wie Sie sie in das andere Storyboard kopiert haben. Stellen Sie sicher, dass Sie den gesamten Code des View Controllers erhalten.

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

Perfekte Lösung. Arbeitete für mich
Akash Bhardwaj

0

Zwei mögliche Fälle:

  • Entweder müssen Sie von einem Projekt in ein anderes kopieren und einfügen.
  • oder innerhalb desselben Projekts, aber eines anderen oder gleichen Storyboards.

Sie können das Problem beheben, indem Sie den im Hintergrund ausgeführten Emulator schließen und dann kopieren und einfügen oder indem Sie es aus Ihrem Storyboard kopieren und einfügen (XML-Format).


0

Ich habe festgestellt, dass anstelle der Auswahl der Szene die Auswahl des Ansichts-Controllers und das Kopieren und Einfügen in ein neues Storyboard funktioniert.

Geben Sie hier die Bildbeschreibung ein


0

Es scheint, als ob der Kernel Probleme beim Einfügen des gesamten Storyboards hat. Dies geschieht jedoch nur, wenn die Simulator-Apps geöffnet sind. Schließen Sie die Simulator-App und versuchen Sie, sie einzufügen. Sie funktioniert einwandfrei


0

Drag & Drop hat bei mir statt Kopieren / Einfügen funktioniert. Viel Spaß beim Codieren!

drag_and_drop


0

Ich stehe viel Zeit vor diesem Problem, es scheint, als ob es an einer neuen Version von Xcode liegt.

Hier ist die Lösung, die für mich funktioniert.

Löschen Sie abgeleitete Daten und starten Sie den XCode neu.

Reinigen und bauen Sie das Projekt.

Stellen Sie sicher, dass XCode nicht mit folgenden Aufgaben beschäftigt ist:

  • Bauprojekt

  • Indizierung (bis zum Ende warten)

  • Projekt ausführen

  • Storyboard öffnen

Jetzt können Sie versuchen, einen View Controller von einem Storyboard auf ein anderes zu kopieren. Dies ist möglich.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.