【问题标题】:Sorting by date format in iphone在iphone中按日期格式排序
【发布时间】:2010-02-20 15:17:45
【问题描述】:

我是 iphone 开发新手。我正在根据日期对可变数组进行排序。但它正在排序使用日期参数将其视为字符串。我想按日期对其进行排序。我该如何实现。请帮忙我出去。

 NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"pubDate" ascending:YES];
[stories sortUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];

我可以使用选择器吗?如果是这样我应该如何使用它?。谢谢。

【问题讨论】:

    标签: iphone objective-c cocoa-touch date nssortdescriptor


    【解决方案1】:
    -(void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
    { 
        [dateString appendString:string];
    }    
    
    -(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{  
      NSDateFormatter *df = [[[NSDateFormatter alloc] init]autorelease];
      [df setDateFormat:@"dd.MM.yyyy"]; //change the format if you are using it in different way
      NSDate *myDate = [df dateFromString: dateString];
      [dateArray addObject:myDate];
    }
    

    之后,您可以使用您所写的方式对数组进行排序。

    【讨论】:

    • 由于未捕获的异常 'NSInvalidArgumentException',我收到此类错误正在终止应用程序,原因:'*** -[__NSCFDate length]: unrecognized selector sent to instance 0x4c737b0'
    【解决方案2】:

    数组中对象的 pubDate 属性是 NSStrings 还是 NSDates?我在带有 NSDates 的对象数组上使用了该确切的代码,它工作得非常好。如果您使用的是 NSStrings,您需要先将它们转换为日期对象,以便您可以按日期正确排序。

    【讨论】:

    • 如何将对象添加为 nsdates。这些日期是 xml 解析的内容。IN 找到的字符方法如何将其附加为日期?
    猜你喜欢
    • 1970-01-01
    • 2020-09-08
    • 2021-06-07
    • 2017-06-28
    • 2014-11-25
    • 2013-02-20
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多