Ios NSMutableArray中的addObject错误

Ios NSMutableArray中的addObject错误,ios,objective-c,xcode,nsmutablearray,Ios,Objective C,Xcode,Nsmutablearray,我正在尝试显示或隐藏按钮,以便根据是否存在某些数据(例如,是否有电话号码或facebookid)为联系人执行操作。下面的代码编译后在buttonsToHide行崩溃 NSMutableArray *buttonsToShow = [NSMutableArray arrayWithObjects:self.facebookButton,self.callButton, self.smsButton, self.emailButton, self.deleteButton, nil]; NSM

我正在尝试显示或隐藏按钮,以便根据是否存在某些数据(例如,是否有电话号码或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];
}

如果您能就导致它崩溃的原因提供任何建议,我们将不胜感激。

几乎可以肯定的是,它不会在第二个数组分配上崩溃,而是在第一个数组分配上崩溃,而崩溃几乎可以肯定是由初始化中的一个元素为零引起的

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");
} 

那些按钮是我的吗?可能没有连接?

几乎可以肯定的是,第二次分配的数组没有崩溃,而是第一次分配的数组崩溃,而崩溃几乎可以肯定是由初始化中的一个元素为零引起的

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");
} 

那些按钮是我的吗?可能没有连接?

看起来像是
self。facebook按钮
为零。验证它们是以编程方式编写的还是连接到interface builder中的视图的,是否已初始化

以下代码将避免崩溃。但您可能需要检查为什么
self.facebookButton
为零并修复

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

似乎
self.facebook按钮
为零。验证它们是以编程方式编写的还是连接到interface builder中的视图的,是否已初始化

以下代码将避免崩溃。但您可能需要检查为什么
self.facebookButton
为零并修复

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

当代码“崩溃”时会发生什么?您得到的实际错误是什么?应用程序崩溃,该方法在Xcode中打开并带有断点,因此它以绿色突出显示。它显示buttonsToHide=(NSMutableArray*)@“0对象”但您收到的实际错误是什么?这不是一个好主意error@user12345所以你知道原因了,你的self.facebook按钮应该是零。我不知道它应该如何初始化,但我可以假设它必须连接到故事板上的某个按钮,那么就足够了,你这样做了吗?当代码“崩溃”时会发生什么?您得到的实际错误是什么?应用程序崩溃,该方法在Xcode中打开并带有断点,因此它以绿色突出显示。它显示buttonsToHide=(NSMutableArray*)@“0对象”但您收到的实际错误是什么?这不是一个好主意error@user12345所以你知道原因了,你的self.facebook按钮应该是零。我不知道它应该如何初始化,但我可以假设它必须连接到故事板上的某个按钮,那么就足够了,你这样做了吗?