13

Xcodeを初めて使用し、InterfaceBuilderを使用するとIDEがクラッシュする問題が発生します。これはXcode4.5です。

ストーリーボードに12個ほどのボタンを追加するのに十分な時間、適切に機能しましたが、いずれかのボタンのサイズを変更しようとすると、クラッシュして終了します。ボタンを動かすとクラッシュします。ラベルのような新しいオブジェクトを追加すると、クラッシュすることがありますが、常にそうとは限りません。

ストーリーボードを編集しようとしない場合、プロジェクトはシミュレーター上で問題なくビルドおよび実行されます。

以下のクラッシュレポートの関連部分のように見えるものを貼り付けました。スペースを節約するために、「ビュー階層」セクションから下のすべてを削除しましたが、便利な場合は追加できます。すべてのクラッシュレポートは同じエラーを参照しています。

興味深いことに、コンソールログを見ると、これらの各クラッシュの前にInterfaceBuilderから別のレポートがあります。

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.

正解です。そのディレクトリは存在しません。私はiPhoneSimulator/ 6.0を持っていますが、他には何もありません。そのパスのユーザーとしてログインしています。

Stack Overflowやその他の場所に関する他の提案に基づいて、ビルドをクリーンアップしてから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}})
4

4 に答える 4

15

更新:さらに実験を行った結果、ストーリーボードの[自動レイアウトを使用]チェックボックスが明らかになりました。これをオフにしてからファイルを保存すると、問題が解決したようです。クラッシュすることなく、自由に編集できます。

于 2012-10-01T19:15:03.790 に答える
2

xibファイルが異なる形式であるが、すべて同じプロジェクトにある場合、これが発生します。私の場合、一部のxibファイルはxcode5 dpと互換性がありましたが、他のファイルはxcode4.6用でした。

ここでの目的は、xibファイルの違いを探すことです

これが将来の人々に役立つことを願っています!

于 2013-06-26T03:02:11.507 に答える
1

この問題は、現在2つの異なるサイズのiPhone Retinaディスプレイ(3.5 "と4")と、それがビューのMode: ScaleToFillおよびおそらくAutosizeSubviewsとどのように相互作用するかに関係している可能性があります。どちらもデフォルトで有効になっています。 。

たとえば、私の場合、ボタンビューが密集した4インチの網膜サイズのMainViewがありましたが、エミュレータは3.5網膜ディスプレイに設定されていました。ボタンビューのサイズは43x43ピクセルで、隣り合っているため、ボタンの位置は、3.5インチディスプレイ用に調整されたときにオーバーラップするように自動ダウンスケールされます(小さいスペースを埋めるためにスケール)-サイズを縮小できなかったためです。このビューのオーバーラップは、自動レイアウトシステムで問題を引き起こす可能性があります。したがって、クラッシュだと思います。

これは、以前は直感的ではなかったInterface Builderでのみ作業しているにもかかわらず、クラッシュレポートでエミュレーターとの通信に言及している理由でもあることは間違いありません。

于 2012-10-09T00:00:08.750 に答える
1

このエラーも発生しました。私にとっての問題は、いくつかの制約が残っているTableViewでした。すべての制約を削除した後、エラーは表示されなくなりました。

于 2016-02-02T13:03:02.693 に答える