我有两个NSMutableArray
,horasPosibles
和arrayCodigos
。我需要保存horasPosibles
中不在arrayCodigos
内的值。这是尝试做的,但在第二行显示“预期”的错误消息。
for(NSInteger i=0; i < [horasPosibles count];i++) {
if ([horasPosibles objectAtIndex:i] in arrayCodigos) {
NSLog(@"YES!");
}
else{
[codigos addObject:[horasPosibles objectAtIndex:i]];
}
}
可能是什么问题?
答案 0 :(得分:2)
试试此代码
for(id obj in horasPosibles)
{
if (![arrayCodigos containsObject:obj])
{
[codigos addObject:obj];
}
}
答案 1 :(得分:2)
使用NSSet
您可以轻松完成此操作。
NSMutableSet *intersection = [NSMutableSet setWithArray: horasPosibles];
[intersection minusSet:[NSSet setWithArray: arrayCodigos]];
codigos = [intersection allObjects];
NSLog(@"%@", codigos);
答案 2 :(得分:1)
迭代array1&amp;在array2中搜索它。如果找到,请将它添加到array3(如果它还没有)。
for (MyObject* obj in array1)
{
if([array2 containsObject:obj] && ![array3 containsObject:obj])
[array3 addObject:obj];
}
如果array1没有重复项,则不需要进行第二次检查。
答案 3 :(得分:1)
if ([horasPosibles objectAtIndex:i] in arrayCodigos)
语法错误,应该是
if ([arrayCodigos containsObject:[horasPosibles objectAtIndex:i]])
但您可以简化您的完整代码
codigos = [horasPosibles mutableCopy]; // make a copy
[codigos removeObjectsInArray:arrayCodigos]; // remove all objects from other array
答案 4 :(得分:0)
试试这个:
for(NSInteger i=0; i < [horasPosibles count];i++){
if ([horasPosibles containsObject:[arrayCodigos objectAtIndex:i]]) {
NSLog(@"YES!");
}else{
[codigos addObject:[horasPosibles objectAtIndex:i]];
}
}