使用两个字典键基于日期和时间对数组进行排序
我正在尝试根据日期和时间对数组进行排序,我可以根据日期成功对数组进行排序,这两个时间即将作为字典中的另一个值。
所以date是格式为"yyyy-MM-dd"
的字符串,时间以"HH:mm"
格式的字符串forms出现
时间值以字符串’“HH:mm”’格式出现在键"starts"
中。
我知道我需要把两个字符串组合成'yyyy-MM-dd HH:mm'
但是怎么样?
-(NSMutableArray *)sortArrayBasedOndate:(NSMutableArray *)arraytoSort { NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"yyyy-MM-dd"]; NSComparator compareDates = ^(id string1, id string2) { NSDate *date1 = [formatter dateFromString:string1]; NSDate *date2 = [formatter dateFromString:string2]; return [date1 compare:date2]; }; NSSortDescriptor * sortDesc1 = [[NSSortDescriptor alloc] initWithKey:@"start_date" ascending:YES comparator:compareDates]; [arraytoSort sortUsingDescriptors:[NSArray arrayWithObjects:sortDesc1, nil]]; return arraytoSort; }
知道如何解决这个问题?
您还需要对时间进行排序,这就是sortUsingDescriptors:
采用数组的原因。
-(NSMutableArray *)sortArrayBasedOndate:(NSMutableArray *)arraytoSort { NSDateFormatter *fmtDate = [[NSDateFormatter alloc] init]; [fmtDate setDateFormat:@"yyyy-MM-dd"]; NSDateFormatter *fmtTime = [[NSDateFormatter alloc] init]; [fmtTime setDateFormat:@"HH:mm"]; NSComparator compareDates = ^(id string1, id string2) { NSDate *date1 = [fmtDate dateFromString:string1]; NSDate *date2 = [fmtDate dateFromString:string2]; return [date1 compare:date2]; }; NSComparator compareTimes = ^(id string1, id string2) { NSDate *time1 = [fmtTime dateFromString:string1]; NSDate *time2 = [fmtTime dateFromString:string2]; return [time1 compare:time2]; }; NSSortDescriptor * sortDesc1 = [[NSSortDescriptor alloc] initWithKey:@"start_date" ascending:YES comparator:compareDates]; NSSortDescriptor * sortDesc2 = [NSSortDescriptor sortDescriptorWithKey:@"starts" ascending:YES comparator:compareTimes]; [arraytoSort sortUsingDescriptors:@[sortDesc1, sortDesc2]]; return arraytoSort; }
将两者连接到一个时间戳。 然后从引用日期开始获取TimeInterVal,并按此数字排序
- 指南:将您的应用发布到App Store
- 以编程方式隐藏苹果iAd ADBannerView
- 如何在使用cordova文件插件时从iOS中导出文件?
- handleWatchKitExtensionRequest不响应Watchkit扩展中的openParentApplication(Swift)
- FBSDKLoginManager logInWithPublishPermissions总是返回isCancelled = YES
- 资产目录:访问不同文件夹中具有相同名称的图像
- UILabel与Tap Gesture Recognizer无法正常工作
- 正确的方式保存和加载图片
- 几个用户获得NSURLErrorServerCertificateUntrusted