我有一個UIViewController。在的UIViewController的頂部,我宣佈Objective-C內存管理問題,NSMutableArray
NSMutableArray *contacts;
在我viewDidLoad
方法,我稱之爲[self getContacts]
基本上我初始化數組contacts
。它首先初始化數組,然後它增加了一些對象:
if(contacts == nil)
contacts = [[NSMutableArray alloc] init];
[contacts removeAllObjects];
[contacts addObjectsFromArray:[some objects]];
所以,現在我的contacts
被初始化。在我的viewDidLoad方法中,我甚至使用了contacts
,而且效果很好。稍後,在一個方法中,我需要檢索contacts
的元素,但是我得到一個EXC_BAD_ACCESS。爲什麼是這樣?爲什麼我的contacts
數組在開始時不保存我初始化的對象,以及如何解決這個問題?
編輯: 當我選擇一個NavigationBarItem,然後觸發一個方法buttonWasPressed
錯誤出現。在該方法中,我只是有以下幾點:
-(void)buttonWasPressed:(id)sender {
NSLog(@"button was pressed");
if(contacts == nil)
NSLog(@"contacts is nil!");
NSLog(@"contacts = %@",contacts);
}
我看「按鈕被按下」的印刷,但隨後有一個EXEC_BAD_ACCESS。
請在發生錯誤訪問的情況下發布該方法的代碼。此外,當您將對象添加到數組時,它會保留這些對象。 – 2011-06-10 14:16:16
好的,我發佈了該代碼。 – CodeGuy 2011-06-10 14:39:25