/ / Dokładnie dopasowany NSString w Core Data iOS - ios, target-c, core-data

Dokładnie dopasowane NSString w Core Data iOS - ios, target-c, core-data

"Moja jednostka w CoreData nazywa się myentity i atrybut o nazwie " myuniqueid i chcę uruchomić kwerendę SQL w następujący sposób:

Select * from myentity where myuniqueid == 1000

Jak mogę uzyskać moje określone wiersze, w których pasują, tak jak w zapytaniu SQL? tak, że chcę filtrować wszystkie wiersze gdzie myuniqueid jest 1000.

Mój kod:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSManagedObjectContext *context = [self managedObjectContext];
if (context == nil) {}
else {
NSEntityDescription *entity = [NSEntityDescription entityForName:@"myentity" inManagedObjectContext:context];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"myuniqueid == 1000"];
[fetchRequest setPredicate:predicate];

[fetchRequest setEntity:entity];
NSArray *items = [context executeFetchRequest:fetchRequest error:nil];
for (int i=0; i<4; i++) {
NSManagedObject *mo = [items objectAtIndex:i];  // assuming that array is not empty
id value = [mo valueForKey:@"myuniqueid"];
NSLog(@"SENDER: %@",value);
}

}

Im błąd: "Unable to generate SQL for predicate (myuniqueid == 1000) (problem on RHS)"

Odpowiedzi:

1 dla odpowiedzi № 1

Wypróbuj ten predykat:

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"myentity"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"myuniqueid == %@", @(1000)];
NSArray *items = [[self managedObjectContext] executeFetchRequest:request error:nil];