簡體   English   中英

NSMutableArray中的addObject錯誤

[英]addObject in NSMutableArray error

我正在嘗試顯示或隱藏按鈕,以便根據是否存在某些數據(例如,有電話號碼或facebookid)對聯系人采取的操作。 下面的代碼可以編譯,但是在buttonsToHide行上崩潰。

NSMutableArray *buttonsToShow = [NSMutableArray arrayWithObjects:self.facebookButton,self.callButton, self.smsButton, self.emailButton, self.deleteButton, nil];   
NSMutableArray *buttonsToHide = [NSMutableArray array];

NSLog(@"Facbook id is:%@",self.contact.facebookID);

if (self.contact.facebookID == nil) {
    [buttonsToShow removeObject:self.facebookButton];
    //Following line crashes and shows up in green
    [buttonsToHide addObject:self.facebookButton];
}

將不勝感激導致崩潰的任何建議。

幾乎可以肯定,它不會在第二個數組分配上崩潰,但是在第一個數組上,崩潰幾乎可以肯定是由初始化中的一個元素為nil引起的。

NSMutableArray *buttonsToShow;
if (self.facebookButton && self.callButton && self.smsButton && self.emailButton && self.deleteButton) {
    buttonsToShow = [NSMutableArray arrayWithObjects:self.facebookButton,self.callButton, self.smsButton, self.emailButton, self.deleteButton, nil];  
} else {
    buttonsToShow = [NSMutableArray array];
    NSLog(@"didn't initialize the array because placing nil objects in an array causes a crash");
} 

這些按鈕是IBOutlets嗎? 可能沒有掛上電話?

好像self.facebookButton為零。 驗證是否已通過編程方式將它們初始化或是否已連接到界面構建器中的視圖。

以下代碼將避免崩潰。 但是您可能想檢查一下self.facebookButton為什么為nil並修復

if (self.contact.facebookID == nil && self.facebookButton) {
    [buttonsToShow removeObject:self.facebookButton];
    //Following line crashes and shows up in green
    [buttonsToHide addObject:self.facebookButton];
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM