我拥有用户位置的核心数据:经度,纬度等。
我尝试获取可用日期列表:
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请求以使其更快?