2013-03-30 16 views
2

我有一個基於核心數據的項目。其中一個屬性名爲「date」,我想從該屬性獲取值,並且值startsWith字符串「2013-03」,但我只能得到最新的值,如字符串「2013-03-30」,我怎樣才能將所有以「2013-03」開頭的值放入NSArray?如何使用核心數據中的NSPredicate從其中一個屬性獲取值

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Database" inManagedObjectContext:self.managedObjectContext]; 
[fetchRequest setEntity:entity]; 

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"date beginsWith %@",value]; 
[fetchRequest setPredicate:predicate]; 
NSSortDescriptor *sortDescription = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:YES]; 
[fetchRequest setSortDescriptors:@[sortDescription]]; 

回答

2

我工作了由我自己 的NSMutableArray *陣列= [[NSMutableArray裏的alloc] INIT];

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Database" inManagedObjectContext:self.managedObjectContext]; 
[fetchRequest setEntity:entity]; 

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"date beginsWith %@",value]; 
[fetchRequest setPredicate:predicate]; 
NSSortDescriptor *sortDescription = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:YES]; 
[fetchRequest setSortDescriptors:@[sortDescription]]; 

NSError *fetchError = nil; 
NSArray *fetchArray = [self.managedObjectContext executeFetchRequest:fetchRequest error:&fetchError]; 

if ([fetchArray count] > 0) 
{ 
    for (Database *fetchResult in fetchArray) 
    { 
     [array addObject:fetchResult.date]; 
    } 
} 
return array; 
相關問題