怎么对包含自定义对象的NSMutableArray排序

 我来答
春花开秋花谢
2016-08-23 · TA获得超过230个赞
知道小有建树答主
回答量:1081
采纳率:0%
帮助的人:404万
展开全部
-(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;

}

}

}

}

};
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式