次のコードを使用してダングリング ポインターを作成しようとしています。
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"I am touched!");
// bar is an instance variable defined by NSString *bar; in the interface
if (!bar) {
NSLog(@"bar is being init");
bar = [NSString stringWithFormat:@"Hello I am %i", arc4random() % 1000];
NSLog(@"bar is now %@", bar);
} else {
NSLog(@"bar is %@", bar);
}
}
そのため、iPad 2 デバイス (シミュレーターではない) の 2 回目のタッチでプログラムを正常にクラッシュさせることができますが[bar retain];
、割り当て行の後にa を追加してbar =
、ダングリング ポインターがないことを確認しようとすると、アプリは起動できず、続行できません。表示:
com.mycompany.TryIOSAppLeak をブートストラップ サーバーに登録できませんでした。エラー: 不明なエラー コード。
これは通常、このプロセスの別のインスタンスがすでに実行されているか、デバッガーでハングしていることを意味します (lldb)。
もう一度やり直す方法はありますか?(iPad と iMac を再起動するか、Xcode を再起動する以外に)。