2016-03-01 134 views
0

我想知道如何在从firebase检索数据后检查数组是否包含某个值。我检索数据并将其存储在数组中,如下所示:检查数组是否包含某个对象

[self.firebase2 observeEventType:FEventTypeChildAdded withBlock:^(FDataSnapshot *snapshot){ 

    if (newMessagesOnTop) { 
     [self.chat2 insertObject:snapshot.value atIndex:0]; 
    } else { 
     [self.chat2 addObject:snapshot.value]; 
    } 

从这里我想检查数组chat2中是否有特定的对象。而且我也想知道我应该采用哪种方法。

任何帮助将不胜感激。

+0

下面的答案是正确的。至于放入哪种方法,当你想要查看对象(基于用户操作?定时?)时,这真的很重要,但重要的是,您的代码将被调用一次节点在前面,然后在添加子节点时再次调用。在所有子对象的块完成之后,在第一次调用该方法时,您不应该查找数组中的对象。您可能需要对这些对象进行计数以确定何时完成,或者可能使用.Value,以便一次加载它们。 – Jay

回答

1

在Objective-C这是代码

NSArray * list = @[@(1),@(2),@(3)]; 
if ([list containsObject:@(2)]) { 
    NSLog(@"Yes"); 
} else { 
    NSLog(@"No"); 
} 
+0

如果我使用防火底座,应该使用什么方法? –

+0

@TejasBadani:请说明你需要知道的内容 –

0

如果你想知道你是否客服2已经包含了对象检索你应该使用containObject()检查对象存在

BOOL isPresent = [self.chat2 containsObject:snapshot.value];

如果您使用firebase或其他任何您将对象存储在所有操作所需的数组中,则无关紧要。

0
if ([self.chat2 containsObject:snapshot.value]) { 
    [self.chat2 insertObject:snapshot.value atIndex:0]; 
} else { 
    [self.chat2 addObject:snapshot.value]; 
} 
[self setNeedsDisplay]; 
[tableView reloadData]; 
相关问题