日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OC-数组排序-NSSortDescriptor使用

發布時間:2024/8/24 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OC-数组排序-NSSortDescriptor使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Object-c中,當有一個班級類MyClass,還有一個學生類Student.在班級類MyClass中通過一個可變數組NSMutableArray保存了許多的學生對象?,F在有一個功能需要對學生進行按各種條件排序(按姓名升序,按學號降序,按成績升序)。

借用上面一個簡單的功能來了解一下Object-c中排序描述對象NSSortDescriptor對數組的排序的使用方法。

簡單的了解一下以下幾個類:Student(學生類)、MyClass(班級類)

Student:(只給接口)

1 @interface Student : NSObject 2 { 3 NSString * _name; 4 NSInteger _num; 5 NSInteger _score; 6 } 7 8 - (id)initWithName:(NSString *)name number:(NSInteger)num score:(NSInteger)score; 9 - (void)setName:(NSString *)name; 10 - (NSString *)name; 11 - (void)setNum:(NSInteger)num; 12 - (NSInteger)num; 13 - (void)setScore:(NSInteger)score; 14 - (NSInteger)score; 15 16 @end

MyClass:(接口)

@interface MyClass : NSObject {NSString * _className;NSMutableArray * _stuList; }- (id)init; - (void)setClassName:(NSString *)name; - (NSString*)className; - (void)addStudent:(Student *)student; - (void)addStudent:(Student *)student atIndex:(NSInteger) index; - (void)removeStudent:(Student *)student; - (void)removeStudentAtIndex:(NSInteger) index; - (void)replaceStudent:(Student *)student atIndex:(NSInteger) index; - (void)showStuList; - (void)sortedByNumber;//按照學號升序 - (void)sortedByScore;//按照分數降序 - (void)sortedByName;//按照名字降序- (void)sortedByNameAscByNumDescByScoreAsc; @end

MyClass:(具體實現方法)

@implementation MyClass - (void)sortedByNumber //按照學號升序 {NSSortDescriptor *sd1 = [NSSortDescriptor sortDescriptorWithKey:@"_num" ascending:YES];NSArray *sdArray = [NSArray arrayWithObjects:sd1, nil];[_stuList sortUsingDescriptors:sdArray]; // [_stuList sortedArrayUsingDescriptors:sdArray]; } - (void)sortedByScore //按照分數降序 {NSSortDescriptor *sd = [NSSortDescriptor sortDescriptorWithKey:@"_score" ascending:NO];NSArray *sdArray = [[NSArray alloc]initWithObjects:sd, nil];[_stuList sortUsingDescriptors:sdArray]; } - (void)sortedByName //按照名字降序 {NSSortDescriptor *sd = [NSSortDescriptor sortDescriptorWithKey:@"_name" ascending:NO];NSArray *sdArray = [[NSArray array] initWithObjects:sd, nil];[_stuList sortUsingDescriptors:sdArray]; } - (void)sortedByNameAscByNumDescByScoreAsc //按照名字升序,學號降序,分數升序來排列數組中的對象 {NSSortDescriptor *sdName = [[NSSortDescriptor alloc]initWithKey:@"_name" ascending:YES];NSSortDescriptor *sdNum = [[NSSortDescriptor alloc]initWithKey:@"_num" ascending:NO];NSSortDescriptor *sdScore = [NSSortDescriptor sortDescriptorWithKey:@"_score" ascending:YES];NSArray *sdArray = [[NSArray alloc] initWithObjects:sdName,sdNum,sdScore, nil];[_stuList sortUsingDescriptors:sdArray]; } @end

就由上面的?sortedByNameAscByNumDescByScoreAsc 方法來分析NSSortDescriptor對象的使用方法。

1.通過NSSortDescriptor對象的對象方法?initWithKey 或是直接通過類方法 ?sortDescriptorWithKey 生成一個NSSortDescriptor(排序描述)對象,該對象傳進一個排序關鍵字(該關鍵字是要排序的數組中元素對象的屬性),并且設置按照該關鍵字(屬性)是按照升序還是降序。

2.將NSSortDescriptor對象(可以多個)添加到一個數組中。

3.最后通過數組的方法 sortUsingDescriptors ,將第二步中的數組作為參數傳遞進去,獲得的結果就是已經排序好的數組了。

以上方法適用于可變數組和不可變數組,只是方法略微有點不一樣。

轉載于:https://www.cnblogs.com/BeyondAverage0908/p/4571638.html

總結

以上是生活随笔為你收集整理的OC-数组排序-NSSortDescriptor使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 风间ゆみ大战黑人 | 97人妻精品一区二区三区免费 | 亚洲一区天堂 | 日韩中文字幕视频在线观看 | 国语对白永久免费 | av黄色免费在线观看 | 韩国无码一区二区三区精品 | 人妻在线日韩免费视频 | 欧美 亚洲 另类 偷偷 自拍 | 久久精品国产电影 | 992tv在线成人免费观看 | 欧美成一区二区三区 | 吻胸摸激情床激烈视频大胸 | 67194在线免费观看 | 国产调教一区 | 欧美日韩一区二区视频在线观看 | 欧美一区二区三区久久综合 | 午夜在线免费观看视频 | 国产黄片一区二区三区 | 天堂婷婷 | 日本精品视频一区二区三区 | 亚洲一区二区三区欧美 | 一卡二卡三卡在线观看 | 色妞网 | 17c国产精品 | 女人一区二区三区 | 99热热 | 美女脱衣服一干二净 | 四虎福利视频 | 免费成人在线观看视频 | 精品无码久久久久久久久果冻 | 最新国产精品 | 999av视频| 男人手机天堂 | 不卡一区二区三区四区 | 亚洲日本成人在线观看 | 小色瓷导航 | 在线精品国产 | 最近日韩中文字幕 | 午夜小电影 | 久久国产精品亚洲 | 免费av电影网址 | 日本成人在线播放 | 黑人操日本 | 精人妻一区二区三区 | 欧美精品国产精品 | 欧美在线v | h在线免费 | 中国妇女做爰视频 | 国产成人宗合 | 日日噜噜噜夜夜爽爽狠狠 | 中文字幕 自拍偷拍 | 亚洲天天操 | 性xxxfllreexxx少妇 | 香蕉视频在线观看黄 | 欧美不卡影院 | 男女羞羞无遮挡 | 秋霞7777鲁丝伊人久久影院 | 国产精品高潮呻吟久久久 | 亚洲熟妇av日韩熟妇在线 | 日本三级日本三级日本三级极 | 国产乱码精品一区二区三区精东 | 亚洲欧美日韩成人 | 好了av在线 | 欧美精品人妻一区二区 | 狠狠躁夜夜| 国产深夜福利在线 | 青青草手机视频 | 国产精品免费av一区二区 | 国产精品偷伦视频免费看 | 亚洲女同在线 | 18岁免费观看电视连续剧 | 亚洲精品在线免费看 | 嫩草影院在线免费观看 | 在线观看av的网站 | 97精品久久 | 另类综合在线 | 国产精品女人精品久久久天天 | 欧美日韩成人网 | 国产刺激视频 | 成人午夜电影网站 | 夜夜久久 | 亚洲激情图| 国产女主播一区二区三区 | 波多野结衣一区二区三区在线 | 日韩综合一区 | 亚洲涩涩爱| 夜色综合 | 羞羞羞网站 | 日韩成人精品一区二区 | 日本少妇bbwbbw精品 | 人人做人人爽 | 91大神精品| 国产午夜免费 | 少妇脚交调教玩男人的视频 | av在线中文 | 久久久久久91 | 色人阁网站 | 四季av一区二区三区免费观看 |