【问题标题】: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 以便一次性加载它们。

标签: ios objective-c arrays firebase


【解决方案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];
    

    【讨论】:

      猜你喜欢
      • 2011-04-02
      • 2020-08-11
      • 1970-01-01
      • 1970-01-01
      • 2014-07-27
      • 2015-01-22
      • 2020-06-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多