iOS开发中对NSArray或者NSMutableArray中的内容排序

 2023-09-10 阅读 22 评论 0

摘要:原文引用至 http://blog.unieagle.net/2012/05/10/ios开发中对nsarray或者nsmutablearray中的内容排序/ NSMutableArray *feedsBuffer; //初始化buffer以及填充数据 //....... //排序只需要两句话:已针对数组内对象的publishTime属性(NSDate)排序为例: NSSortDes

原文引用至               http://blog.unieagle.net/2012/05/10/ios开发中对nsarray或者nsmutablearray中的内容排序/

 

NSMutableArray *feedsBuffer;
//初始化buffer以及填充数据
//.......
//排序只需要两句话:已针对数组内对象的publishTime属性(NSDate)排序为例:
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"publishTime" ascending:NO];
[feedsBuffer sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];//假如feedsBuffer是NSArray,那么有一个方法是

NSArray *sortedArray = [feedsBuffer sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];//如果排序的依据比较复杂,那么可以使用Block进行大小判断自定义:

[feedsBuffer sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
//返回三者其一:NSOrderedAscending, NSOrderedSame, NSOrderedDescending
return NSOrderedSame;
}];

ios基于什么开发?我的项目是要对未读消息进行靠前排序

- (void)reloadNuReadMsgCount
{NSMutableDictionary *sessionDic = [[IMMsgDBAccess sharedInstance] loadAllSessions];NSArray *allSession = [sessionDic allValues];for (NSMutableDictionary *dic in _dataArray) {for ( ECSession* session in allSession) {NSString *sessionId = session.sessionId;NSString *ronggroupid = [dic objectForKey:@"ronggroupid"];if ([sessionId isEqualToString:ronggroupid]) {[dic setValue:[NSString stringWithFormat:@"%ld", (long)session.unreadCount] forKey:MsgUnReadCount];}}}// 根据字典里的  MsgUnReadCount  属性来排序未读消息NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"MsgUnReadCount" ascending:NO];[_dataArray sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];NSLog(@"%@",_dataArray);[_contentTableView reloadData];
}

 

转载于:https://www.cnblogs.com/yulongjiayuan/p/5354568.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/37822.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息