【发布时间】:2014-08-26 18:20:44
【问题描述】:
我有一个NSArray,用于存储我的联系人(字符串)。我还有一个名为checkList 的方法,它查找现有联系人,如果用户不在联系人列表中,我会向当前用户提供警报视图,她可以将其他用户添加到她的联系人列表中。问题是,当我点击按钮时,每次都会调用[self addContact],这并不重要,其他用户是否在联系人列表中。然而,[self addContact] 只有在其他用户不在联系人列表中时才应该被调用。
- (void) checkList {
AppDelegate *contact = (AppDelegate*)[[UIApplication sharedApplication] delegate];
BOOL isObjectThere = [contact.cArray containsObject: self.stringToCompare];
NSLog(@" dev log %@", contact.cArray);
if (!isObjectThere) {
[self addContact];
}
}
我知道每次用户点击goButton 时我都会调用checkList 方法,但是有一个if 语句可以处理这种情况。我认为问题出在 BOOL 上,因为我可以正确记录 dev log,它不是零,它包含正确的内容。
- (IBAction) goButton {
[self checkList];
}
如果有人看到我做错了什么或有任何建议,听到它会很高兴。
当我记录 BOOL 时,它总是返回 0,所以每次都是 false,用户是否联系都没有关系。
【问题讨论】:
-
您确定
self.stringToCompare有您要添加的字符串吗? -
也许你的 self.stringToCompare 返回 nil ,如果是,Bool 无论如何都会返回 NO ,并且每次调用检查列表时都会调用你的 add contact 方法。
-
@user1190882 是的,这是肯定的。我检查了几次,并在 addContact 方法中使用了该变量。
-
您能否显示
contact.cArray的实际日志(或至少您认为匹配的记录)以及self.stringToCompare中包含的内容?我的猜测是您的数组实际上包含字典对象,其中包含有关联系人的详细信息,而不仅仅是字符串。 -
向我们展示 stringToCompare 和 cArray 的实际 NSLog 输出。
标签: ios objective-c