我有一个可以添加对象的 NSMutableArray。添加的SUPDataValue
对象是包含一堆SUP
数据的对象。
在另一个视图中,我采用此对象数组并将其划分为一个NSMutableArray
包含NSMutableArray
tableview 中每个部分的一个。当向我的初始对象数组添加另一个SUPDataValue
对象并切换回我的表格视图时,我想从对象数组中重新读取所有对象,并查看这些对象是否存在于我的分层数组中。
我正在使用“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或其他东西?)我该怎么做?