工作中遇到的问题,话不多说了。直接上代码。
NSArray *array1 = [NSArray arrayWithObjects:@"a", @"b", @"c", nil];
NSArray *array2 = [NSArray arrayWithObjects:@"b", @"a", @"c", nil];
bool bol = false;
//创建俩新的数组
NSMutableArray *oldArr = [NSMutableArray arrayWithArray:modifierarr];
NSMutableArray *newArr = [NSMutableArray arrayWithArray:newModifierarr];
//对数组1排序。
[oldArr sortUsingComparator:^NSComparisonResult(id *obj1, id *obj2){
return obj1 > obj2;
}];
//对数组2排序。
[newArr sortUsingComparator:^NSComparisonResult(id *obj1, id *obj2){
return obj1 > obj2;
}];
if (newArr.count == oldArr.count) {
bol = true;
for (int16_t i = 0; i < oldArr.count; i++) {
id *c1 = [oldArr objectAtIndex:i];
id *newc = [newArr objectAtIndex:i];
if (![newc isEqualToString:c1];) {
bol = false;
break;
}
}
}
if (bol) {
NSLog(@"两个数组的内容相同!");
}
else {
NSLog(@"两个数组的内容不相同!");
}
欢迎大家批评指教!
本文中比较对象是否相等的时候用的isEqualToString 下面介绍下 isEqual、isEqualToString、== 区别
1: ==:比较的是指针地址.
2:isEqualToString 是 NSString 的方法
首先都会判断 指针是否相等 ,相等直接返回YES,
不相等再判断是否是同类对象或非空,空或非同类对象直接返回NO,
而后依次判断对象对应的属性是否相等,若均相等,返回YES
3:isEqual 是 NSObject 的方法
isEqual比isEqualToString,先判断类型是否相等,不相等直接返回NO.