0

このような単純なコードでエラーが発生する理由を理解しようと懸命に努力してきました:

UIAlertView *alertDialog;
alertDialog = [[UIAlertView alloc]
               initWithTitle:@"Alert button detected"
               message:@"I need your attention NOW"
               delegate:self
               cancelButtonTitle:@"OK"
               otherButtonTitles:@"Maybe later", @"Never", nil
               ];
[alertDialog show];

キャッチされていない例外 'NSInternalInconsistencyException' が原因でアプリを終了しています。 ; alpha = 0; opaque = NO; layer = (null)>) nil レイヤーを使用。このビューはおそらく initWithFrame: または initWithCoder: を受け取っていません。

私が試したこと:

  • エラーが発生した ios 5 と 6 の両方のシミュレーターにデプロイする
  • ボタンがnilに設定されている場合、機能します(ボタンは表示されません)。
4

1 に答える 1

0

以前に手動で作成したカテゴリ クラスが 1 つ表示されるまで、プロジェクト全体の設定、追加ファイル、および削除を 1 つずつ確認しています。

@interface UIButton (UIButton)

initメソッドしかありません。このクラスを削除すると動作します! (または不完全な.mのinitメソッドを削除します)、UIAlertViewを使用しているviewcontrollerにヘッダーとしてインポートしませんでした。

-(id)init
{
    self.backgroundColor = [UIColor blueColor];
    return self;
}

助けてくれてありがとう。カスタム UIButton を実装するには、より適切な方法を検討する必要があります。

于 2012-12-26T16:40:07.263 に答える