У меня проблема с Xcode 11, работающим на Catalina (у него была такая же проблема с 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
...
Это происходит с кем-то еще? Это что-то не поддерживается раскадровкой?
ios
xcode
macos
macos-catalina
LorenzOliveto
источник
источник
cmd + D
работает, если вам нужно дублировать один viewController в пределах одной раскадровки, но мне нужно скопировать и вставить в другую раскадровку.Ответы:
Для меня проблема заключалась в том, что приложение работало в фоновом режиме. После закрытия эмулятора я смог скопировать / вырезать и вставить (даже в разных файлах раскадровки).
источник
Xcode-> Preferences-Locations Нажмите на маленькую стрелку под «Производные данные» и удалите эту папку. После того, как я это сделал, я мог вырезать и вставлять между раскадровками.
источник
Та же проблема здесь. Я думаю, что это ошибка с новым Xcode 11.
Нашел быстрый обходной путь. Вместо копирования и вставки контроллеров представления, которые приведут к сбою Xcode, вы можете использовать cmd + D для дублирования контроллеров представления. Но это будет полезно, только если в одной раскадровке
источник
Выберите View Controller, Edit> Copy
На другой раскадровке отредактируйте> вставьте
источник
Я нашел быстрый взлом, перейдите в навигатор проекта, затем щелкните правой кнопкой мыши на файле .storyboard и выберите «Открыть как исходный код».
вы получите раскадровку в формате xml, выполните поиск и скопируйте класс контроллера и вставите так же, как вы скопировали его в другую раскадровку. Удостоверьтесь, что получили полный код контроллера представления.
источник
Два возможных случая:
Это можно исправить, закрыв эмулятор, работающий в фоновом режиме, а затем скопировав и вставив или скопировав и вставив из раскадровки (в формате XML).
источник
Я обнаружил, что вместо выбора сцены, выбора контроллера представления и выполнения копирования и вставки в новую раскадровку сработало.
источник
Кажется, что у ядра есть проблемы при вставке всей раскадровки, но это происходит только тогда, когда открыты приложения симулятора. Закройте приложение симулятора и попробуйте вставить его, оно отлично работает
источник
Перетаскивание работало вместо копирования / вставки для меня. Удачного кодирования!
источник
Я сталкиваюсь с этой проблемой много раз, похоже, из-за новой версии Xcode.
Вот решение, которое работает для меня.
Удалите производные данные и перезапустите XCode.
Очистить и построить проект.
Убедитесь, что XCode не должен быть занят следующими задачами:
Строительный проект
Индексирование (дождитесь окончания)
Работающий проект
Открытие раскадровки
Теперь вы можете попробовать скопировать один контроллер представления из одной раскадровки в другую.
источник