代码之家  ›  专栏  ›  技术社区  ›  Vanya

设备上的加速计EXC_BAD_ACCESS崩溃

  •  0
  • Vanya  · 技术社区  · 15 年前

    我有一个UITableViewController,我不想使用uiaccelerator,但是在按下UIViewController中要激活的行之后,当我使用模拟器时一切都很好,但是当我使用iPhone 3G设备进行测试时,我通过按return按钮获得了EXCôu BADôu ACCESS。

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    
    
         ShakeControl *percView = [[ShakeControl alloc] init];
         // ...
         // Pass the selected object to the new view controller.
         [self.navigationController pushViewController:percView animated:YES];
         [percView release];
    
    
    }
    

    任何想法都将不胜感激。

    震动控制实施:

    - (void)viewDidLoad {
        [super viewDidLoad];
        [[UIAccelerometer sharedAccelerometer] setUpdateInterval:1.0 / kUpdateFrequency];
        [[UIAccelerometer sharedAccelerometer] setDelegate:self];
    
    }
    
    - (void)viewDidUnload {
        [super viewDidUnload];
    
        [[UIAccelerometer sharedAccelerometer] setDelegate:nil];
    }
    
    

    3 回复  |  直到 15 年前
        1
  •  1
  •   tia    15 年前

    这个 viewDidUnload 方法只在特定情况下调用,例如内存警告。你必须在 dealloc 我也是。

        2
  •  0
  •   Ben    15 年前

    试着在关闭后释放它,我不确定pushViewController是否保留。

        3
  •  0
  •   Raymond W    15 年前

    可以将环境变量NSZombiesEnabled&NSAutoreleaseFreedObjectCheckEnabled设置为值1。 这将防止对象真正被释放,然后您应该得到控制台日志,指示过度释放的来源。