【Objective-C学习-11】NSArray的排序
来源:互联网 发布:五金 用进销存软件 编辑:程序博客网 时间:2024/06/07 15:54
//Student.h#import <Foundation/Foundation.h>@interface Student : NSObject@property (nonatomic, retain) NSString *firstName;@property (nonatomic, retain) NSString *lastName;+ (id)studentWithFirstname:(NSString *)firstname Lastname:(NSString *)lastname;- (NSComparisonResult)compareStudent:(Student *)stu;@end
//Student.m#import "Student.h"@implementation Student+ (id)studentWithFirstname:(NSString *)firstname Lastname:(NSString *)lastname { Student *stu = [[[Student alloc] init] autorelease]; stu.firstName = firstname; stu.lastName = lastname; return stu;}- (NSComparisonResult)compareStudent:(Student *)stu { //先按姓排序 NSComparisonResult result = [self.lastName compare:stu.lastName]; //如果姓相同就按名排序 if (result == NSOrderedSame) return [self.firstName compare:stu.firstName]; return result;}- (void)dealloc { [_firstName release]; [_lastName release]; [super dealloc];}- (NSString *)description { return [NSString stringWithFormat:@"%@ %@", _lastName, _firstName];}@end
//main.m#import <Foundation/Foundation.h>#include "Student.h"int main(int argc, const char * argv[]) { @autoreleasepool { Student *stu1 = [Student studentWithFirstname:@"Dave" Lastname:@"Lin"]; Student *stu2 = [Student studentWithFirstname:@"John" Lastname:@"Fang"]; Student *stu3 = [Student studentWithFirstname:@"Tony" Lastname:@"Jia"]; Student *stu4 = [Student studentWithFirstname:@"Ben" Lastname:@"Lau"]; NSArray *array = [NSArray arrayWithObjects:stu1, stu2, stu3, stu4, nil]; NSArray *array2 = [array sortedArrayUsingSelector:@selector(compareStudent:)]; NSLog(@"%@", array2); NSArray *array3 = [array sortedArrayUsingComparator:^NSComparisonResult(Student *obj1, Student *obj2) { NSComparisonResult result = [obj1.lastName compare:obj2.lastName]; if (result == NSOrderedSame) return [obj1.firstName compare:obj2.firstName]; return result; }]; NSLog(@"%@", array3); NSSortDescriptor *lastNameDesc = [NSSortDescriptor sortDescriptorWithKey:@"lastName" ascending:YES]; NSSortDescriptor *firstNameDesc = [NSSortDescriptor sortDescriptorWithKey:@"firstName" ascending:YES]; NSArray *desc = [NSArray arrayWithObjects:lastNameDesc, firstNameDesc, nil]; NSArray *array4 = [array sortedArrayUsingDescriptors:desc]; NSLog(@"%@", array4); } return 0;}
0 0
- 【Objective-C学习-11】NSArray的排序
- 【Objective-C学习-10】NSArray的遍历
- 【转载】黑马程序员 之 Objective-C NSArray的排序
- Objective-C学习-数组 NSArray 和 NSMutableArray
- Objective-C的集合类NSArray
- Objective-C之foundation中四种数组NSArray的排序方法
- Objective-c - NSArray(NSMutableArray)
- Objective-c - NSArray(NSMutableArray)
- Objective-c - NSArray(NSMutableArray)
- Objective-C之NSArray
- Objective-C NSArray
- Objective-C----NSArray、NSMutableArray
- Objective-C 数组NSArray
- NSArray方法 Objective-c
- Objective-C NSArray & NSMutableArray
- Objective-C NSArray
- Objective C中NSArray数组排序总结(二)
- 数组NSArray排序(Objective-C 开发范例)
- CSDN博客(专家)如何使用量子恒道统计访问量
- 黑马程序员—OC语言基础—方法小结
- 这个是借鉴一个朋友的关于IOS的资料
- 定位bug技巧
- C# 判断是否为数字
- 【Objective-C学习-11】NSArray的排序
- C++笔记(一)
- java Executors
- .net 导出excel
- socket
- 华为机试-元素按奇偶排序
- 在Thinkphp中使用array_slice处理已查询出的数据
- 内存管理
- (补充)第六天抽象、封装、继承、多态