UIACCELERMOMETER EXC_BAD_ACCESS在设备上崩溃
-
28-09-2019 - |
题
我在实现UIACCELERMOMETER时面临着一些奇怪的问题。我有一个uitaiteViewController,我不想使用UIACCELEREMETER,但是在按下行之后,我想在UiviewController中激活一个,当我使用Simulator时,一切都很好,但是当我使用设备iPhone 3G测试它时,我得到了exc_bad_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]; }
当我禁用[percview Release];,但听起来不像解决方案。任何想法都将不胜感激。
摇动控制实施:
- (void)viewDidLoad { [super viewDidLoad]; [[UIAccelerometer sharedAccelerometer] setUpdateInterval:1.0 / kUpdateFrequency]; [[UIAccelerometer sharedAccelerometer] setDelegate:self]; } - (void)viewDidUnload { [super viewDidUnload]; [[UIAccelerometer sharedAccelerometer] setDelegate:nil]; }
谢谢
解决方案
这 viewDidUnload
方法仅在特定情况下被调用,例如内存警告。您必须删除代表 dealloc
也。
其他提示
在解散它之后,请尝试发布它,我不确定PushViewController是否保留。
您可以设置环境变量nszombiesEnabled&nsautoreleasefreedobjectCheckeCnabled,值为1。这将阻止对象真正被划分,然后您应该获得控制台日志,以指示过度释放的位置。
您可以将运行与性能工具一起使用 - >分配后,一旦知道哪个对象被过度发行,并查看每个位置都要求保留/释放以发现不平衡。
不隶属于 StackOverflow