您的位置:首页 > 其它

OC - SortArray

2015-08-14 19:46 260 查看
<main.m>
#import <Foundation/Foundation.h>
#import "Person.h"

int main(int argc, const char * argv[])
{

@autoreleasepool {

//创建四个 Person 对象
Person *per1 = [[Person alloc ] initWithName:@"zhangSan" sex:@"male" age:@"25"];
Person *per2 = [[Person alloc] initWithName:@"liSi" sex:@"female" age:@"22"];
Person *per3 = [[Person alloc] initWithName:@"maHuaTeng" sex:@"male" age:@"38"];
Person *per4 = [[Person alloc] initWithName:@"maYun" sex:@"male" age:@"40"];

//放入数组
NSMutableArray *array = [NSMutableArray array];
//添加
[array addObject:per1];
[array addObject:per2];
[array addObject:per3];
[array addObject:per3];
[array addObject:per4];
//        [@"a"compare:@"b"];

//按自己的需求为其排序(添加核实的方法)
[array sortUsingSelector:@selector(compareByNameWithOther:)];
NSLog(@"%@",array);

[array sortUsingSelector:@selector(compareByAgeWithOther:)];
NSLog(@"%@",array);

}
return 0;
}


<Person.h>

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
NSString *_name;
NSString *_sex;
NSString *_age;
}
-(id)initWithName:(NSString *)name
sex:(NSString *)sex
age:(NSString *)age;

-(void)setName:(NSString *)name;
-(NSString * )name;

-(void)setSex:(NSString *)sex;
-(NSString *)sex;

-(void)setAge:(NSString *)age;
-(NSString *)age;

//规定输出格式的方法
-(NSString *)description;

//按姓名排序
-(NSComparisonResult)compareByNameWithOther:(Person *)anotherPerson;

//按年龄排序
-(NSComparisonResult)compareByAgeWithOther:(Person *)anotherPerson;

@end


<Person.m>

#import "Person.h"

@implementation Person
-(id)initWithName:(NSString *)name
sex:(NSString *)sex
age:(NSString *)age
{
if ([super init]) {
_name = name;
_sex = sex;
_age = age;
}return self;
}

-(void)setName:(NSString *)name
{
_name = name;
}
-(NSString * )name
{
return _name;
}

-(void)setSex:(NSString *)sex
{
_sex = sex;
}
-(NSString *)sex
{
return _sex;
}

-(void)setAge:(NSString *)age
{
_age = age;
}
-(NSString *)age
{
return _age;
}

-(NSString *)description
{
return [NSString stringWithFormat:@"name:%@,sex:%@,age:%@",_name,_sex,_age];
}

//按姓名排序
-(NSComparisonResult)compareByNameWithOther:(Person *)anotherPerson
{
if ([self.name compare:anotherPerson.name] > 0  ) {
//如果当前的名字大于传入的名字大于传入的名字,则返回降序
return NSOrderedDescending;
}else if([self.name compare:anotherPerson.name] < 0){
//如果当前的名字小于传入的名字大于传入的名字,则返回升序
return NSOrderedAscending;
}
//如果都不满足,则是相等
return NSOrderedSame;
}

//按年龄排序
-(NSComparisonResult)compareByAgeWithOther:(Person *)anotherPerson
{
if ([self.age compare:anotherPerson.age] > 0) {

return NSOrderedDescending;
}else if ([self.age compare:anotherPerson.age] < 0){

return NSOrderedAscending;
}

return NSOrderedSame;
}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: