1

我正在尝试使用以下代码创建一个悬空指针:

-(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 设备(不是模拟器)上第二次触摸时成功使程序崩溃,但是当我尝试[bar retain];在分配行之后添加 abar =以查看不会有悬空指针时,应用程序无法启动并继续运行显示:

无法向引导服务器注册 com.mycompany.TryIOSAppLeak。错误:未知错误代码。

这通常意味着该进程的另一个实例已经在运行或挂在调试器中。(lldb)

有没有办法让它重新开始?(除了重新启动 iPad 和 iMac 或重新启动 Xcode)。

4

1 回答 1

2

啊,这种情况经常发生在我身上。在重新启动之前尝试在应用程序崩溃后强制终止应用程序,该应用程序已挂在设备上。但是一旦发生删除设备/模拟器上的应用程序,重新启动设备/模拟器并重新启动 XCode。很烦对吧!或者,您可以编辑您的方案并将调试器更改为 GDB。它与您的代码无关。

于 2012-05-14T06:30:32.517 回答