怎么对包含自定义对象的NSMutableArray排序
1个回答
展开全部
-(void)test
{
//建立一个block,用来描述比较条件
NSComparator cp=^(NSString * obj1,NSString * obj2)
{
//首先,将字母a去掉
obj1=[obj1 substringFromIndex:1];
obj2=[obj2 substringFromIndex:1];
//然后,使用@“+”进行对字符串进行分割
NSArray * arr1=[obj1 componentsSeparatedByString:@"+"];
NSArray * arr2=[obj2 componentsSeparatedByString:@"+"];
//判断第一个数谁大
if ([arr1[0] integerValue]<[arr2[0] integerValue])
{
return NSOrderedAscending;
}
else if([arr1[0] integerValue]>[arr2[0] integerValue])
{
return NSOrderedDescending;
}
else//第一个数相同,就比较第二个数
{
//有可能数组里面只有一个元素,不可直接取第二个数
if (arr1.count==1)
{
if (arr2.count==1)
{
return NSOrderedSame;
}
else
{
return NSOrderedAscending;
}
}
else
{
if (arr2.count==1)
{
return NSOrderedDescending;
}
else
{
if([arr1[1] integerValue]>[arr2[1] integerValue])
{
return NSOrderedAscending;
}
else if([arr1[1] integerValue]>[arr2[1] integerValue])
{
return NSOrderedDescending;
}
else
{
return NSOrderedSame;
}
}
}
}
};
{
//建立一个block,用来描述比较条件
NSComparator cp=^(NSString * obj1,NSString * obj2)
{
//首先,将字母a去掉
obj1=[obj1 substringFromIndex:1];
obj2=[obj2 substringFromIndex:1];
//然后,使用@“+”进行对字符串进行分割
NSArray * arr1=[obj1 componentsSeparatedByString:@"+"];
NSArray * arr2=[obj2 componentsSeparatedByString:@"+"];
//判断第一个数谁大
if ([arr1[0] integerValue]<[arr2[0] integerValue])
{
return NSOrderedAscending;
}
else if([arr1[0] integerValue]>[arr2[0] integerValue])
{
return NSOrderedDescending;
}
else//第一个数相同,就比较第二个数
{
//有可能数组里面只有一个元素,不可直接取第二个数
if (arr1.count==1)
{
if (arr2.count==1)
{
return NSOrderedSame;
}
else
{
return NSOrderedAscending;
}
}
else
{
if (arr2.count==1)
{
return NSOrderedDescending;
}
else
{
if([arr1[1] integerValue]>[arr2[1] integerValue])
{
return NSOrderedAscending;
}
else if([arr1[1] integerValue]>[arr2[1] integerValue])
{
return NSOrderedDescending;
}
else
{
return NSOrderedSame;
}
}
}
}
};
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询