核心数据和unix时间戳日期

时间:2015-04-01 13:17:22

标签: ios date core-data nspredicate

我拥有用户位置的核心数据:经度,纬度等。

我尝试获取可用日期列表:

NSManagedObjectContext *context = [self managedObjectContext];


NSFetchRequest * request = [[NSFetchRequest alloc]init];
[request setEntity:[NSEntityDescription entityForName:@"Locations" inManagedObjectContext:context]];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"device_id == %@", deviceID];
[request setPredicate:predicate];

NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"created_at" ascending:NO];
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];

request.returnsDistinctResults = YES;

[request setPropertiesToFetch:@[@"created_at"]];

[request setResultType:NSDictionaryResultType];

NSArray *results = [context executeFetchRequest:request error:NULL];


NSMutableArray *dateArray = [[NSMutableArray alloc]init];

NSDateFormatter *formatter= [[NSDateFormatter alloc] init];

for(NSDictionary* obj in results ) {


    NSDate *date = [NSDate dateWithTimeIntervalSince1970:[[obj valueForKey:@"created_at"] integerValue]];

    [formatter setLocale:[NSLocale currentLocale]];
    [formatter setDateFormat:@"dd-MM-yyyy"];
    NSString *dateString = [formatter stringFromDate:date];

    if (dateArray.count == 0) {
        [dateArray addObject:dateString];
    }
    else{
        if (![dateArray containsObject:dateString]) {
            [dateArray addObject:dateString];
        }
    }


}
NSLog(@"Object: %@", dateArray);

一切正常但是当我在核心数据中有很多位置时需要一段时间...任何想法我如何修改CoreData请求以使其更快?

0 个答案:

没有答案