NSMutableArray 中的 addObject 错误
addObject in NSMutableArray error
我正在尝试根据是否存在某些数据(即有 phone 号码或 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];
}
我正在尝试根据是否存在某些数据(即有 phone 号码或 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];
}