2015-11-03 59 views
0

的基礎核心數據實體,我對核心數據的實體,稱爲信息和所謂的「日期」的屬性,是字符串類型。我希望能夠給實體的日期的方式,排序在一個合適的日期格式。目前,「日期」是格式「MM/DD/YY」的字符串。如何適當地格式化字符串並執行分類。如何排序日期鍵

這是我現在的代碼片段:

- (NSFetchedResultsController *)fetchedResultsController 
{ 
    AppDelegate *delegate = [[UIApplication sharedApplication] delegate]; 

    NSManagedObjectContext *context = [delegate managedObjectContext]; 
    NSFetchRequest *fetchRequest1 = [NSFetchRequest fetchRequestWithEntityName:@"Info"]; 
    NSSortDescriptor *sort = [[NSSortDescriptor alloc]initWithKey:@"date" ascending:NO]; 
    [fetchRequest1 setSortDescriptors:@[sort]]; 

    NSError *error0 =nil; 
    NSArray *results = [context executeFetchRequest:fetchRequest1 error:&error0]; 
    fetchedObjects2 = results; 
    [fetchRequest1 setFetchBatchSize:20]; 

    if (_fetchedResultsController != nil) 
     _fetchedResultsController = nil; 
    NSFetchedResultsController *theFetchedResultsController = 
    [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest1 
             managedObjectContext:context sectionNameKeyPath:nil 
                cacheName:nil]; 
    self.fetchedResultsController = theFetchedResultsController; 
    fetchedResultsController.delegate = self; 

    return fetchedResultsController; 
} 

這顯示在表中。

- (void)reloadTableViewData 
{ 
    NSError *error; 

    if (![[self fetchedResultsController0] performFetch:&error]) { 
     // Update to handle the error appropriately. 
     NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
     exit(-1); // Fail 
    } 

    [TableView reloadData]; 
    [self.view setNeedsDisplay]; 
} 

這是實體:

'Info' Entity

回答

0

在一般情況下,你應該存儲的方式,更易於數據處理您的數據。您可以隨時按摩它以獲得您想要的任何演示效果。

如果您確實希望將日期保存爲mm/dd/yy,則還應該存儲另一個項目,如sortableDate,其格式爲數字表示形式或字符串格式爲yyyymmdd。

0

絕對沒有任何理由在任何東西,但一個NSDate存儲日期。重構使用適當的日期對象和排序將是一件輕而易舉的事情。

如果你需要你的字符串,使用日期格式。

let formatter = NSDateFormatter() 
formatter.dateFormat = "MM/dd/yy" 
let stringRepresentation = formatter.stringFromDate(dateObject) 

(請注意,這只是演示瞭如何讓你的特定字符串。其實,你應該針對不同的語言環境提供適當的日期字符串,即沒有硬編碼dateFormat)。