2012-08-27 52 views
0

裝上一個按鈕,我在UIViewController從我的故事板使用下面的代碼加載的水龍頭......內存異常從故事板中

InfoViewController *dst = [self.storyboard instantiateViewControllerWithIdentifier:@"InfoViewIdentifier"]; 
[self.view insertSubview:dst.view atIndex:0]; 
dst.view.frame = CGRectMake(0, 480, 320, 480); 

[UIView beginAnimations: @"infoAnimation" context: nil]; 
[UIView animateWithDuration: 1.0f animations: ^{dst.view.frame = CGRectMake(0, 0, 320, 480);}]; 
[UIView commitAnimations]; 

一切加載罰款。結果視圖上有幾個按鈕,只需簡單的操作即可(忽略視圖,打開Safari瀏覽器中的URL等),只要我點擊它們中的任何一個,就會收到一個異常。奇怪的是,它可能會拋出2個例外之一...

  • 線程1:EXC_BAD_ACCESS(code = 1,address = ...) - 顯示應用程序仍在異常中斷點運行。
  • 爲標識符UpstreamPlaceholder-2缺失代理 - 日誌所示

我也使用自定義塞格斯嘗試這樣做,我也有同樣的結果。

編輯:

更多的測試後,它似乎是隨機扔壞訪問錯誤(大部分時間裏,80%+)。如果沒有拋出該異常,safari中的鏈接將打開,但解除視圖的鏈接將引發代理標識符錯誤。

任何幫助將不勝感激。

回答

0

好的,所以總的noob問題在這裏。該問題與該方法中使用局部變量有關。大部分時間,ARC在記憶中都在消失(我的80%參考)。我將dst變量移動到我的頭文件中,一切按預期工作。

1

添加到上一個答案: 缺少代理標識符UpstreamPlaceholder-xx也可能在故事板配置錯誤中引發。 像重複CellIdentifier ...