2

ドキュメントベースのアプリケーションがあります。XCode 4.5.1(4.4から)にアップグレードしてから、XcodeからアプリケーションをデバッグするとNSOpenPanelがクラッシュします。プログラムを直接起動してもクラッシュしません。

NSOpenPanelを使用するのは、ユーザーが[ファイル]メニューから[開く]を選択した場合(ドキュメントベースのアプリケーションであるため、自分のコードは含まれていません)と、データをドキュメントにインポートする場合(私自身のコードによって呼び出されます)。NSOpenPanelは両方の場合にクラッシュします(ダイアログは開きますが、何かを実行する前に、例外が発生します)。

私はクリーンになり、コンパイラをAppleLLVMからLLVMGCCに、デバッガをLLDBからGDBに、そしてその逆に切り替えてみましたが、変更はありませんでした。

これはインポート用の私のコードです:

long result;
NSArray *fileTypes = [NSArray arrayWithObjects: @"txt", @"csv", @"text",
                      NSFileTypeForHFSTypeCode( 'TEXT' ), nil];
NSOpenPanel *oPanel = [NSOpenPanel openPanel];

[oPanel setAllowsMultipleSelection:NO];
[oPanel setAllowedFileTypes:fileTypes];
[oPanel setMessage:@"Please select import file:"];

result = [oPanel runModal];

CodeSigningチェック中にどこかでクラッシュするようです(私のアプリケーションはコード署名されていません):

スタックトレース

新しいプロジェクトを設定する必要がありますか?どんな助けでもありがたいです...

どうもありがとう。

4

1 に答える 1

12

理由を見つけました。「すべての例外」にブレークポイントを設定しました。無効にするか、「評価後に自動的に続行」を選択すると機能します。App Sandboxに関連していると思います。

于 2012-10-20T06:31:53.833 に答える