Tengo un problema con Xcode 11 ejecutándose en Catalina (tenía el mismo problema con Moave). Cuando intento copiar / pegar una vista o un ViewController de un guión gráfico a otro, Xcode falla con esta excepción:
...
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
...
¿Le está pasando a alguien más? ¿Es esto algo que no es compatible con el guión gráfico?
ios
xcode
macos
macos-catalina
LorenzOliveto
fuente
fuente
cmd + D
funciona si lo que quieres es duplicar un solo viewController dentro del mismo Storyboard pero lo que necesito es copiar y pegar en un Storyboard diferente.Respuestas:
El problema para mí fue porque tenía la aplicación ejecutándose en segundo plano. Después de cerrar el emulador pude copiar / cortar y pegar (incluso en diferentes archivos de guión gráfico).
fuente
Xcode-> Preferencias-Ubicaciones Haga clic en la pequeña flecha debajo de "Datos derivados" y elimine esa carpeta. Después de hacer esto, pude cortar y pegar entre guiones gráficos.
fuente
Mismo problema aquí. Creo que es un error con el nuevo Xcode 11.
Encontré una solución rápida. En lugar de copiar y pegar controladores de vista, lo que hará que Xcode se bloquee, puede usar cmd + D para duplicar los controladores de vista. Pero esto solo será útil si está en el mismo guión gráfico
fuente
Seleccione Ver controlador, Editar> copiar
En otro guión gráfico, Editar> pegar
fuente
Encontré un truco rápido, vaya al navegador de su proyecto, luego haga clic derecho en su archivo .storyboard y elija abrir como código fuente.
obtendrá su guión gráfico en formato xml, buscará y copiará la clase del controlador y pegará de la misma manera que lo copió en el otro guión gráfico. asegúrese de obtener el código completo del controlador de vista.
fuente
Dos posibles casos:
Puede solucionarlo cerrando el emulador que se ejecuta en segundo plano y luego copie y pegue o copie y pegue desde su guión gráfico (formato XML).
fuente
He descubierto que en lugar de seleccionar la escena, seleccionar el controlador de vista y realizar una copia y pegar en el nuevo guión gráfico funcionó.
fuente
Parece que el núcleo tiene problemas al pegar todo el guión gráfico, pero esto solo sucede cuando las aplicaciones del simulador están abiertas. Cierre la aplicación del simulador e intente pegarla, funciona perfectamente
fuente
Arrastrar y soltar funcionó en lugar de copiar / pegar para mí. ¡Feliz codificación!
fuente
Me enfrento a este problema mucho tiempo, parece que se debe a la nueva versión de Xcode.
Aquí está la solución que me funciona.
Elimine los datos derivados y reinicie el XCode.
Limpia y construye el proyecto.
Asegúrese de que XCode no esté ocupado en las siguientes tareas:
Proyecto de construcción
Indexación (espere hasta terminar)
Proyecto en ejecución
Apertura del guión gráfico
Ahora puede intentar copiar un controlador de vista de un guión gráfico a otro, puede ser posible.
fuente