Я новичок в Xcode, и у меня возникают проблемы с сбоем IDE при использовании Interface Builder. Это Xcode 4.5.Xcode Interface Builder падает при редактировании раскадровки
Он работал должным образом, чтобы я мог добавить дюжину или около того кнопок в раскадровку - но когда я пытаюсь изменить размер любого из них, он падает и уходит. Если я нажму кнопку, она сработает. Если я добавлю новый объект, например метку, то иногда сбой, но не всегда.
Если я не пытаюсь редактировать раскадровку, проект строит и запускается на симуляторе без проблем.
Я вставил, что похоже на соответствующую часть отчета о сбое, приведенного ниже. Чтобы сэкономить место, я удалил все из раздела «иерархия представлений» вниз, но могу добавить его, если это полезно. Все отчеты о сбоях относятся к одной и той же ошибке.
Интересно, что когда я смотрю на журнал консоли, есть еще один отчет от Interface Builder перед каждым из этих аварий:
25/09/2012 10:46:35.661 Interface Builder Cocoa Touch Tool: CFPreferences:
user home directory at file://localhost/Users/me/Library/Application Support/
iPhone Simulator/User/ is unavailable. User domains will be volatile.
Это правильно - что каталог не существует. У меня есть iPhone Simulator/6.0, но больше ничего. Я зарегистрирован как пользователь в этом пути.
Основываясь на других предложениях по переполнению стека и в других местах, я пробовал очистить сборку, а затем удалил весь каталог iPhone Simulator и позволил симулятору воссоздать его, но это не имеет никакого значения.
В качестве эксперимента я только что создал новый проект и перетащил несколько кнопок и меток в раскадровку. Это кажется прекрасным. Никаких сбоев.
Означает ли это, что что-то испортилось в моем другом проекте?
Любые предложения были бы очень желанными. Это не важный проект - я изучаю свой путь на этом этапе, но если что-то вызывает проблемы, я хочу разобраться, прежде чем начать серьезную работу в Xcode.
Заранее спасибо.
Джеймс
Process: Xcode [650]
Path: /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier: com.apple.dt.Xcode
Version: 4.5 (1839)
Build Info: IDEApplication-1839000000000000~3
App Item ID: 497799835
App External ID: 10747437
Code Type: X86-64 (Native)
Parent Process: launchd [129]
Date/Time: 2012-09-25 10:46:43.202 +0100
OS Version: Mac OS X 10.7.5 (11G56)
Report Version: 9
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Application Specific Information:
ProductBuildVersion: 4G182
ASSERTION FAILURE in /SourceCache/IDEInterfaceBuilderCocoaTouch/IDEInterfaceBuilderCocoaTouch-1926/IBPlugin/Utilities/IBObjectMarshalling.m:651
Details: Failed to arbitrate IBNSLayoutConstraint, IBUIButton, IBUILabel, IBUIView, and IBUIViewController.
Interface Builder encountered an error communicating with the iOS Simulator. If you choose to file a crash report or radar for this issue, please check Console.app for crash reports for "Interface Builder Cocoa Touch Tool" and include their content in your crash report.
Exception name: IBAssertionFailure
Exception reason: ASSERTION FAILURE:
Reason: All views needing candidate constraints have already had constraints generated. This most likely indicates a bug involving layout of the following views:
Layout engine frame ({{20, 60}, {282, 57}}) of <UILabel: 0xb36f590; frame = (20 60; 281 57); text = '0'; clipsToBounds = YES; opaque = NO; autoresize = TM+BM; userInteractionEnabled = NO; layer = <CALayer: 0xb36f620>> does not match canvas frame ({{20, 60}, {281, 57}})
Layout engine frame ({{236, 328}, {66, 43}}) of <UIRoundedRectButton: 0xb384590; frame = (236 328; 65 44); opaque = NO; autoresize = TM+BM; layer = <CALayer: 0xb384660>> does not match canvas frame ({{236, 328}, {65, 43}})
Layout engine frame ({{236, 124}, {66, 43}}) of <UIRoundedRectButton: 0xb38ea10; frame = (236 124; 65 44); opaque = NO; autoresize = TM+BM; layer = <CALayer: 0xb38eae0>> does not match canvas frame ({{236, 124}, {65, 43}})
Layout engine frame ({{236, 175}, {66, 43}}) of <UIRoundedRectButton: 0xb390a30; frame = (236 175; 65 44); opaque = NO; autoresize = TM+BM; layer = <CALayer: 0xb36e8e0>> does not match canvas frame ({{236, 175}, {65, 43}})
Layout engine frame ({{236, 226}, {66, 43}}) of <UIRoundedRectButton: 0xb392a90; frame = (236 226; 65 44); opaque = NO; autoresize = TM+BM; layer = <CALayer: 0xb392b60>> does not match canvas frame ({{236, 226}, {65, 43}})
Layout engine frame ({{236, 277}, {66, 43}}) of <UIRoundedRectButton: 0xb394b70; frame = (236 277; 65 44); opaque = NO; autoresize = TM+BM; layer = <CALayer: 0xb394c40>> does not match canvas frame ({{236, 277}, {65, 43}})
У меня возникла такая же проблема и кажется идентичным сбой, но я не использую раскадровку. Где вы проверили «Использовать автоспуск» на вашем раскадровке? Или это флажок где-то еще? Спасибо –
Когда он падает? У вашего приложения есть (пустая) раскадровка с каким-то видом? Флажок находится в правой панели инспектора Interface Builder. Отключение ** ** - это то, что исправило мою проблему. Дайте мне знать, если вы не можете найти его, и я добавлю экранный захват. Удачи. – James
Сбой при редактировании .xib в одном приложении; Мне просто нужно было снять флажок «Использовать Autolayout» для xib, как вы предложили, спасибо –