检查数组是不是包含某个对象

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];

【讨论】:

以上是关于检查数组是不是包含某个对象的主要内容,如果未能解决你的问题,请参考以下文章

iOS:有没有办法检查 NSArray 对象是不是包含某个字符?

如何检查arraylist中的数组是不是包含某个值?

检查对象数组是不是包含对象

如何检查数组是不是包含至少一个对象?

如何检查包含另一个对象数组的对象数组是不是具有属性

检查Swift数组是不是包含对象实例[重复]