我正在與蘋果公司的加速計圖表實施例的工作: http://developer.apple.com/library/ios/#samplecode/AccelerometerGraph/Introduction/Intro.html用於解析後的UIView的iPhone4 EXC_BAD_ACCESS。如何調試?
我推2個圖形視圖到導航控制器:
GraphViewController* graphViewController = [[GraphViewController alloc]initWithNibName:@"GraphViewController" bundle:nil];
[self.navigationController pushViewController:graphViewController animated:YES];
[graphViewController release];
圖形的是由外部方法更新:
[motionManager startDeviceMotionUpdatesToQueue:motionQueue withHandler:^(CMDeviceMotion *motion, NSError *error) {
...
if(graphDelegate)
{
[self performSelectorInBackground:@selector(notifyGraphDelegateWithMotionEvent:) withObject:motion];
}
}
,其中調用
[unfiltered addX:filteredValue y:unfilteredvalue z:10];
爲每個圖表。更新的頻率是每秒
20次當我從導航控制器流行的觀點,我得到EXC_BAD_ACCESS [超級的dealloc]後
-(void)dealloc
{
// Since 'text' and 'current' are weak references, we do not release them here.
// [super dealloc] will take care to release 'text' as a subview, and releasing 'segments' will release 'current'.
[segments release];
[super dealloc];
}
這是一個討厭的錯誤,我真的不知道如何解決這樣的問題。這似乎是關於視圖被分配的順序的事情,因爲在視圖彈出之後發生崩潰。有關如何解決類似問題的任何想法?
你試過NSZombieEnabled爲是在你的環境變量?如果不是先嚐試。 – ARC
Nikita說什麼。你可能會過度釋放一個對象,'NSZombie'被設計用來檢測這個對象。 – bdares
@Alex Stone代碼,你顯示我們看起來很好。修復EXC_BAD_ACCESS很有趣。讓我們知道當您啓用NSZombieEnabled時會發生什麼。如果不工作,你可以發佈你的整個樣本項目(郵政編碼,並在這裏分享鏈接)會有人通過你的代碼 – ARC