Jestem nowy w Xcode i mam problemy z awarią IDE, gdy używam Konstruktora interfejsu. To jest Xcode 4.5.Konstruktor interfejsu Xcode ulega awarii podczas edytowania storyboardu
To działało poprawnie przez wystarczająco długi czas, aby dodać kilkanaście przycisków do scenorysu - ale gdy próbuję zmienić dowolną z nich, powoduje awarię i kończy działanie. Jeśli przesuniemy przycisk, ulegnie awarii. Jeśli dodaję nowy obiekt, taki jak etykieta, to czasami ulega on awarii, ale nie zawsze.
Jeśli nie będę próbował edytować storyboardu, projekt zostanie zbudowany i uruchomiony na symulatorze bez żadnych problemów.
Wkleiłem to, co wygląda jak odpowiednia część raportu awarii poniżej. Aby zaoszczędzić miejsce, usunąłem wszystko z "hierarchii widoku" w dół, ale mogę je dodać, jeśli jest użyteczne. Wszystkie raporty o awariach odnoszą się do tego samego błędu.
Co ciekawe, kiedy patrzę w dzienniku konsoli jest inny raport z interfejsu Builder przed każdym z tych wypadków:
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.
To poprawna - że katalog nie istnieje. Mam iPhone Simulator/6.0, ale nic więcej. Jestem zalogowany jako użytkownik w tej ścieżce.
Opierając się na innych sugestiach dotyczących Stack Overflow i innych, próbowałem wyczyścić kompilację, a następnie usunąłem cały katalog symulatora iPhone'a i pozwoliłem symulatorowi odtworzyć go, ale to nie ma znaczenia.
W ramach eksperymentu właśnie utworzyłem nowy projekt i przeciągnąłem przyciski i etykiety do storyboardu. Wydaje się to w porządku. Bez awarii.
Czy to sugeruje, że coś jest uszkodzone w moim drugim projekcie?
Wszelkie sugestie będą mile widziane. To nie jest ważny projekt - uczę się na tym etapie - ale jeśli coś powoduje problemy, to chcę to rozwiązać, zanim zacznę poważną pracę w Xcode.
Z góry dziękuję.
James
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}})
Mam ten sam problem i wydaje się, że jest to identyczna awaria, ale nie używam scenorysu. Gdzie zaznaczyłeś "Użyj autouczekania" na swoim scenorysie? Czy to pole wyboru jest gdzieś indziej? Dzięki –
Kiedy to się psuje? Czy Twoja aplikacja ma (pusty) storyboard z jakimś widokiem? To pole wyboru znajduje się w prawym panelu inspektora Interface Builder. Wyłączenie ** off ** jest tym, co naprawiło mój problem. Daj mi znać, jeśli nie możesz go znaleźć, a dodam zrzut ekranu. Powodzenia. – James
Zawiesił się podczas edycji .xib w pojedynczej aplikacji widoku; Po prostu musiałem odznaczyć opcję "Użyj Autolayout" dla Xib, tak jak sugerowałeś, dzięki –