ios - 我们如何在ios中将DateAndTime设置为升序

标签 ios objective-c arrays

嗨,我是 ios 的新手,我正在将我的应用程序与服务集成,我正在获取旅行创建时间和日期值并将该值存储在一个单独的数组中,而且我正在从服务中获取 pickUpAdress 值并将它们存储在一个单独的数组列表中

存储在 arrayList 中后,我在 tableList 中按“升序”顺序设置日期值

当我在 tableList 中显示它们时设置“升序”后,它们彼此不匹配的数组列表数据请帮助我如何解决这个问题如何设置我的地址数组值以匹配相关的日期和时间

代码:-

#import "ViewController.h"

@interface ViewController ()
{
    NSSortDescriptor* sortOrder;
    NSArray * ToBeReadyTimeArray1;
    NSMutableArray * ToBeReadyTimeArray ,*finalToBeReadyTimeArray,*AdressArray;
    UITableView * MaintableView;
}

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    ToBeReadyTimeArray1 = [[NSArray alloc]init];

    ToBeReadyTimeArray = [[NSMutableArray alloc]initWithObjects:@"02/17/2016",@"03/13/2016",@"04/18/2016",@"05/21/2016", nil];

    finalToBeReadyTimeArray =[[NSMutableArray alloc]init];

    AdressArray = [[NSMutableArray alloc]initWithObjects:@"Adress1",@"Adress2",@"Adress3",@"Adress4", nil];

    //Arange Date formate At Assending order:-

    sortOrder = [NSSortDescriptor sortDescriptorWithKey: @"self" ascending: YES];
    ToBeReadyTimeArray1 =  [ToBeReadyTimeArray sortedArrayUsingDescriptors: [NSArray arrayWithObject: sortOrder]];

    for (NSString *dte in ToBeReadyTimeArray1){

        NSDateFormatter *aDateFormatter = [[NSDateFormatter alloc] init];
        [aDateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];

        [aDateFormatter setDateFormat:@"MM/dd/yyyy"];
        NSDate * parsed = [aDateFormatter dateFromString:dte];
        [aDateFormatter setDateFormat:@"dd MMM yyyy"];
        NSString *aFormattedElapsedTime = [aDateFormatter stringFromDate:parsed];
        NSLog(@"tobe Ready time %@",aFormattedElapsedTime);
        [finalToBeReadyTimeArray addObject:aFormattedElapsedTime];
    }

}

最佳答案

我假设您正在尝试按某种排序顺序列出取件时间/地址。如果是这样,我会创建一个预订或旅行模型的 NSArray,其中包含地址 (NSString *) 和 PickUpTime (NSDate *) 然后会使用该属性作为变量键来实现排序方法。

在我的例子中,我实现了一系列具有 pickUpTime 和地址的预订模型。

@property (nonatomic, retain) NSNumber *pickUpTime; // Timestamp instead of NSDate ...
@property (nonatomic, retain) NSString *address;

我为 NSArray 实现了一个类别方法。请注意,排序顺序枚举是手动实现的。

+ (NSArray *)sortArray:(NSArray *)unSortedArray byOrder:(SortOrder)sortOrder usingVariableKey:(NSString *)variableKey {
    NSArray *sortedArray = [NSArray array];
    BOOL isAscendingOrder = NO;


    if (sortOrder == SortOrderAscending) {
        isAscendingOrder = YES;
    }

    if (unSortedArray) {
        NSSortDescriptor *valueDescriptor = [[NSSortDescriptor alloc] initWithKey:variableKey ascending:isAscendingOrder];
        NSArray *descriptors = [NSArray arrayWithObject:valueDescriptor];
        sortedArray = [[unSortedArray sortedArrayUsingDescriptors:descriptors] mutableCopy];
    }
    return sortedArray;
}

然后,我调用了以下...

    // Here, resultMutableArray is a mutable array of booking models ...
    NSArray *resultArray = [NSArray sortArray:[resultMutableArray copy] byOrder:SortOrderDescending usingVariableKey:@"pickUpTime"];

关于ios - 我们如何在ios中将DateAndTime设置为升序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35497007/

相关文章:

iphone - Cocos2d 数组中的随机对象未被调用

objective-c - UIViewControllers 和 UIViews...如何构建一个简单的应用程序

ios - 从 iOS 应用程序将电子邮件地址订阅到 MailChimp

ios - Swift iOS : -How to exclude . livePhotos 是否包含在 PHFetchOptions 中?

ios - 处理 iOS 上 Core Data 数据库的频繁更新和请求的最佳实践?

ios - UIPageViewController 在滚动过去的页面时崩溃

objective-c - NSTreeController 添加 :method not adding "after the current selection"

javascript - ComboBox.store.loadData 无法加载单项数组

arrays - 添加具有多个真实 filterxml 变量的 ifs 函数

arrays - 数组中的差异总和