我已經在storboard中創建了一個帶有兩個viewcontrollers的導航控制器。第一個視圖控制器有一個從第二個視圖控制器開始的開始按鈕。在第二個視圖控制器中,我放置了一個包含三個片段的片段控件:人,卡車,電影。線程1:EXC_BAD_ACCESS(code = 2,address = 0x0){inside switch case}
在第二個viewcontroller的實現文件中聲明並定義了setActiveModel方法。該方法在段控制中具有三段的切換情況。
最後在用於段控制的IBaction裏面調用了這個setActive方法。
- (void) setActiveModel: (int) modelIndex
{
switch (modelIndex)
{
case 0:
m_truckModel->setVisible(false); **---->>[ I get BAD_ACCESS error in this line which steps over in the debugger to viewdidload method to the line where I initialize setActiveModel to integer 0 ] <<-----**
m_metaioMan->setVisible(true);
// stop the movie
m_moviePlane->stopMovieTexture();
m_moviePlane->setVisible(false);
m_moviePlaneButton->setVisible(false);
break;
case 1:
m_truckModel->setVisible(true);
m_metaioMan->setVisible(false);
// stop the movie
m_moviePlane->stopMovieTexture();
m_moviePlane->setVisible(false);
m_moviePlaneButton->setVisible(false);
break;
case 2:
m_truckModel->setVisible(false);
m_metaioMan->setVisible(false);
m_moviePlane->setVisible(false);
m_moviePlaneButton->setVisible(true);
break;
}
}
- (IBAction)onSegmentControlChanged:(UISegmentedControl*)sender
{
[self setActiveModel:sender.selectedSegmentIndex];
}
[我得到了BAD_ACCESS錯誤,在調試器中將viewdidload方法轉移到了我將setActiveModel初始化爲整數0的那一行。] ---- ---- – strawberry 2012-07-10 11:53:09
您的m_truckModel在到達該行代碼之前已經發布。檢查(並)發佈你如何初始化m_truckModel以及如何釋放它。 它正在自動發佈? – Maggie 2012-07-10 11:55:16
我建議在樂器中運行你的應用程序(並選擇殭屍)。我的猜測是,m_truckModel發佈的地方超過了它的保留範圍(您是否使用ARC?) – user1071136 2012-07-10 11:55:56