2010-02-15 23 views
0

我已經實現了一個應用程序,該應用程序顯示了一個包含大量針腳的地圖。 如果您推入一個針腳,則會顯示第二個視圖,該視圖將顯示針腳後面的數據。 按鈕會將您帶回地圖。iPhone:嘗試切換視圖在第三個開關上生成EXC_BAD_ACCESS

我的問題是由第三觸摸引腳上的程序崩潰,在這種方法EXC_BAD_ACCESS

- (void) switchViews { 
    if(self.details == nil){ 
      Kundendetails *detailAnsicht = [[Kundendetails alloc] initWithNibName:@"ViewList" bundle:nil]; 
      detailAnsicht.rootViewController = self; 
      self.details = detailAnsicht; 
      detailAnsicht.map = self.map; 
    } 
    if(self.details.view.superview == nil) { 
      [map.view removeFromSuperview]; 
      [self.view addSubview:details.view]; 
      [details viewDidLoad]; 
    } else { 
      [details.view removeFromSuperview]; 
      [details release]; 
      [self.view addSubview:map.view]; 
    } 
} 

如何隔離哪一行代碼導致崩潰?爲什麼它只會在第三次觸碰時崩潰?

我希望你能幫助我。

回答

1

將NSLog語句放在ifs的每個分支中。您將幾乎肯定看到這個說法引起該問題:

[details viewDidLoad]; 

這是因爲在某些時候你執行這個:

[details release]; 

有效地使信息無法訪問。順便說一句,你也應該幾乎不會直接呼叫viwewDidLoad