0

レンガの壁に頭をぶつけています。通常の方法で UINavigationController にビューをプッシュしようとしています:

[[self navigationController]pushViewController:vc animated:YES];

これを行うと、次のエラーでアプリがクラッシュします。

 __CFStringEncodeByteStream + 17
Thread 1: EXC_BAD_ACCESS (code=2,address=xxxxx)

問題のViewControllerをXCodeが提供するテンプレートに置き換えましたが、エラーが発生しないため、問題はUIViewControllerクラスにあるはずです。さらに、ペン先の名前をテンプレート UIViewController クラスの名前に置き換えると、動作します.ie

MyViewController *myVc = [[MyViewController alloc]initWithNibName:@"XCodeViewController" bundle:nil];

これにより、問題は実際にはペン先にあり、クラス自体にあるとは思えません。すべての接続を確認しましたが、エラーや警告はありません。

うまくいけば、誰かが助けてくれるでしょう。

ありがとう

4

3 に答える 3

1

私はあなたに似た非常に苛立たしいバグに対処していましたが、すべてが整っていました. 新しく作成された xib がバンドル リソースに追加され、nil ポインターや解放されたポインターはなく、NSZombieEnabled が設定されました。ファイルの所有者も正しいViewControllerに設定されました

先輩と30分ほど話し合った後、ようやく何が悪いのかに気づきました -

新しく作成された Xib では、ファイルの所有者を ViewController に割り当てた後でも、実行する必要がある追加の手順があります。メイン ビューの参照アウトレットをファイルの所有者にも設定する必要があります。これを行う最も簡単な方法は、(接続インスペクタから) 参照アウトレットの「+」記号をドキュメント アウトラインの「ファイルの所有者」にドラッグすることです。この後、ポップアップする「表示」をクリックするだけで問題ありません。

あなたや同じ問題に直面している他の人の助けになることを願っています

于 2013-09-27T17:06:53.550 に答える
0

回答するにはさらに情報が必要です。可能性はほとんどありません。

ID インスペクターでクラス名が適切にマップされているかどうかを確認します。また、接続も確認してください。ビューが xib. などでマップされている場合。6.0 未満の OS でアプリを実行し、自動レイアウトなどの機能を使用してビルドすると、クラッシュにつながります。

複数の可能性があります。

これが洞察を与えることを願っています。

于 2013-01-04T10:28:32.650 に答える
0

nib がアプリケーション バンドルに追加されているかどうかを確認します。これを行うには、プロジェクト ファイル -> ビルド フェーズ -> バンドル リソースのコピー を選択します。ない場合は、追加します。

私は昨日同じ問題を抱えていましたが、これが問題でした。

お役に立てば幸いです。

于 2013-01-04T10:17:40.477 に答える