检查NSArray中是否存在唯一对象

保罗·皮伦

我有一个NSMutableArray,可以在其中添加对象。添加的SUPDataValue对象是包含一堆SUP数据的对象

在一个其它视图,我借此对象阵列和将其划分为一个NSMutableArray含一个NSMutableArray用于在每的tableview部分。当将另一个SUPDataValue对象添加到我的初始Object数组中时,我切换回表视图,我想从该对象数组中重新读取所有对象,并查看这些对象是否存在于我的分层数组中。

我正在使用“ objectExists”,它的效果很好...但是...如果将同一对象两次添加到我的对象数组中,它将始终假定它存在于一个层中。

这是我的代码:

- (void)setInitialComponents:(NSMutableArray*)components
{
    if (self.componentLayer)
    {
        for (SUPDataValueList *val in components)
        {
            BOOL found = NO;

            for (NSMutableArray *layer in self.componentLayer)
            {
                if ([layer containsObject:val])
                {
                    found = YES;
                }
            }

            if (!found)
            {
                [[self.componentLayer objectAtIndex:0] addObject:val];
            }
        }
    }
    else {
        self.componentLayer = [NSMutableArray array];

        // Add the no-layer layer (section 0)
        [self.componentLayer addObject:[NSMutableArray array]];

        if (self.addMode)
        {
            [[self.componentLayer objectAtIndex:0] addObjectsFromArray:components];
        }
        else {
            for (SUPDataValueList * val in components)
            {
                int layer = [[NSString stringWithFormat:@"%@", [val item:38]] intValue];

                if (self.componentLayer.count < layer)
                {
                    [self.componentLayer insertObject:[NSMutableArray array] atIndex:layer-1];
                }

                [[self.componentLayer objectAtIndex:layer-1] addObject:val];
            }
        }
    }

    [self.tableView reloadData];
}

您可能已经猜到了,我的问题在这里:

if ([layer containsObject:val])
{
    found = YES;
}

我想检查该数组中是否存在唯一对象(使用内存分配ID或其他?)我该怎么做?

斯卡杰克

containsObject方法将在要比较的基础对象上调用isEqual:。

除非在SUPDataValueList对象中实现isEqual:,否则它将仅进行指针比较,这是NSObject中isEqual的默认行为。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在集合中查询最新的唯一对象

来自分类Dev

在Python中创建唯一对象数组

来自分类Dev

收集JavaScript数组中的唯一对象

来自分类Dev

如何创建唯一对象?

来自分类Dev

获取JSON的唯一对象

来自分类Dev

localStorage 的唯一对象数组

来自分类Dev

将多个唯一表单关联到 Django 中的唯一对象

来自分类Dev

基于特定对象属性的jQuery唯一对象

来自分类Dev

Javascript从对象创建唯一对象的数组

来自分类Dev

休眠:为列表中的同一对象引用生成不同的(唯一的)ID

来自分类Dev

检查2个JavaScript字符串是否引用同一对象

来自分类Dev

如何在Swift中创建唯一对象列表数组

来自分类Dev

javascript-根据多个属性在数组中查找唯一对象

来自分类Dev

根据特定值识别数组中的唯一对象

来自分类Dev

获取字典中唯一对象的最高编号?

来自分类Dev

Powershell:在两列数组中获取唯一对象

来自分类Dev

使用 unique_ptr 保证工厂中的唯一对象

来自分类Dev

根据单个属性从数组获取唯一对象

来自分类Dev

通过属性创建唯一对象数组

来自分类Dev

通过并发删除维护名称的唯一对象

来自分类Dev

使用Mongoldb提取唯一对象

来自分类Dev

数组Swift内的唯一对象

来自分类Dev

使用Mongoldb提取唯一对象

来自分类Dev

无法成功创建唯一对象的std :: list

来自分类Dev

从活动记录关联关系返回唯一对象

来自分类Dev

流利的NHibernate级联保存问题与唯一集合中的非唯一对象

来自分类Dev

检查Laravel中是否存在唯一索引键

来自分类Dev

检查数组中的对象属性是否唯一

来自分类Dev

是否可以在Openerp中显示同一对象的多个表单视图或树视图?

Related 相关文章

热门标签

归档