IOS 比较 2 个 NSArray
IOS Compare 2 NSArray
我有 2 个数组,
array1: 我有 3 个对象。
array2: 我有 4 个对象。
我想比较 2 个数组中的每个对象。
这是我的代码:
for (int i = 0; i < check1.count; i++) {
for (int j = 0; j < check2.count; j++) {
if ([[check1 objectAtIndex:i] isEqualToArray:[check2 objectAtIndex:j]])
{
NSLog(@"same");
[cellContact.iconnewmessage setHidden:NO];
}
}
}
但是,我遇到了错误:
'NSInvalidArgumentException',原因:'-[__NSCFString 计数]:发送到实例 0x7b97d280 的无法识别的选择器'
我真的不知道你想做什么..
但是如果你想在索引处一个一个地比较值..
NSArray *array1 = @[@1,@2,@3,@4];
NSArray *array2 = @[@1,@5,@6];
for (int i=0;i < array1.count;i++)
{
if (array2.count > i)
if (array1[i] == array2[i])
{
NSLog(@"Same:%@ at index:%d", array1[i], i);
}
}
//如果检查内容
//for counting similar objects
int similarObjects = 0;
for (int i=0;i < array1.count;i++)
{
if ([array2 containsObject:array1[i]])
{
NSLog(@"both contains:%@", array1[i]);
similarObjects++;
}
}
NSLog(@"similarObjects :%d", similarObjects);
顺便说一句 check1
在你的代码中不是一个数组,这是导致错误的原因。
希望这对您有所帮助
您可以使用此代码:
int similarObjects = 0;
for (int i=0;i < array1.count;i++)
{
if ([array2 containsObject:array1[i]])
{
NSLog(@"both contains:%@", array1[i]);
similarObjects++;
}
}
NSLog(@"similarObjects :%d", similarObjects);
无需重新实现框架固有的功能。
if([[NSSet setWithArray:check1] intersectsSet:[NSSet setWithArray:check2]])
{
NSLog(@"same");
[cellContact.iconnewmessage setHidden:NO];
}
如果您想遍历数组,请使用 for(ObjectType *object in array)
,不要保留一些手动索引计数器。 NSArray
s 没有保证随机访问的复杂性。
要访问数组中的项目 i
,只需使用 array[i]
。
我有 2 个数组,
array1: 我有 3 个对象。
array2: 我有 4 个对象。
我想比较 2 个数组中的每个对象。
这是我的代码:
for (int i = 0; i < check1.count; i++) {
for (int j = 0; j < check2.count; j++) {
if ([[check1 objectAtIndex:i] isEqualToArray:[check2 objectAtIndex:j]])
{
NSLog(@"same");
[cellContact.iconnewmessage setHidden:NO];
}
}
}
但是,我遇到了错误: 'NSInvalidArgumentException',原因:'-[__NSCFString 计数]:发送到实例 0x7b97d280 的无法识别的选择器'
我真的不知道你想做什么.. 但是如果你想在索引处一个一个地比较值..
NSArray *array1 = @[@1,@2,@3,@4];
NSArray *array2 = @[@1,@5,@6];
for (int i=0;i < array1.count;i++)
{
if (array2.count > i)
if (array1[i] == array2[i])
{
NSLog(@"Same:%@ at index:%d", array1[i], i);
}
}
//如果检查内容
//for counting similar objects
int similarObjects = 0;
for (int i=0;i < array1.count;i++)
{
if ([array2 containsObject:array1[i]])
{
NSLog(@"both contains:%@", array1[i]);
similarObjects++;
}
}
NSLog(@"similarObjects :%d", similarObjects);
顺便说一句 check1
在你的代码中不是一个数组,这是导致错误的原因。
希望这对您有所帮助
您可以使用此代码:
int similarObjects = 0;
for (int i=0;i < array1.count;i++)
{
if ([array2 containsObject:array1[i]])
{
NSLog(@"both contains:%@", array1[i]);
similarObjects++;
}
}
NSLog(@"similarObjects :%d", similarObjects);
无需重新实现框架固有的功能。
if([[NSSet setWithArray:check1] intersectsSet:[NSSet setWithArray:check2]])
{
NSLog(@"same");
[cellContact.iconnewmessage setHidden:NO];
}
如果您想遍历数组,请使用 for(ObjectType *object in array)
,不要保留一些手动索引计数器。 NSArray
s 没有保证随机访问的复杂性。
要访问数组中的项目 i
,只需使用 array[i]
。