检查数组是不是包含某个对象
Posted
技术标签:
【中文标题】检查数组是不是包含某个对象【英文标题】:Check if the array contains a certain object检查数组是否包含某个对象 【发布时间】:2016-03-01 10:10:46 【问题描述】:我想知道如何在从 firebase 检索数据后检查数组是否包含某个值。我检索数据并将其存储在一个数组中,如下所示:
[self.firebase2 observeEventType:FEventTypeChildAdded withBlock:^(FDataSnapshot *snapshot)
if (newMessagesOnTop)
[self.chat2 insertObject:snapshot.value atIndex:0];
else
[self.chat2 addObject:snapshot.value];
从这里我想检查数组 chat2 中是否有特定对象。我也想知道我应该把它放在哪个特定的方法中。
我们将不胜感激。
【问题讨论】:
下面的答案是正确的。至于将其放入哪个方法,这实际上取决于您何时要查找对象(基于用户操作?定时?),但重要的是您的代码将为每个孩子调用一次前面的节点,然后在添加孩子时再次调用。在所有子对象的块完成之前,您不应该在数组中查找对象,这是第一次调用该方法时。您可能需要对这些对象进行计数以确定何时完成,或者可能使用 .Value 以便一次性加载它们。 【参考方案1】:在 Objective-C 中这是代码
NSArray * list = @[@(1),@(2),@(3)];
if ([list containsObject:@(2)])
NSLog(@"Yes");
else
NSLog(@"No");
【讨论】:
如果我用的是fire base,应该用什么方法放? @TejasBadani:请说明您需要了解的内容【参考方案2】:如果你想知道你的 chat2 是否已经包含检索到的对象,你应该使用 containsObject() 来检查对象是否存在
BOOL isPresent= [self.chat2 containsObject:snapshot.value];
无论您使用 firebase 还是其他任何方式,您都可以将对象存储在操作所需的数组中。
【讨论】:
【参考方案3】:if ([self.chat2 containsObject:snapshot.value])
[self.chat2 insertObject:snapshot.value atIndex:0];
else
[self.chat2 addObject:snapshot.value];
[self setNeedsDisplay];
[tableView reloadData];
【讨论】:
以上是关于检查数组是不是包含某个对象的主要内容,如果未能解决你的问题,请参考以下文章