0

以下 NSFetchRequest 不会将任何结果返回到数组中。我怀疑 NSPredicate 的语法有问题。有任何想法吗?

    -(NSManagedObject*)requestTheSingleEntity:(NSString *)entityDescription ForWhichIntegerAttribute:(NSString *)attribute isEqualTo:(int)value
{
    NSFetchRequest *request = [[NSFetchRequest alloc]init];
    NSEntityDescription *e = [[model entitiesByName] objectForKey:entityDescription];

    [request setEntity:e];
    NSPredicate *p = [NSPredicate predicateWithFormat:@"(%@ == %@)", attribute, [NSNumber numberWithInt:value]];
    [request setPredicate:p];

    NSError *er;
    NSArray *results = [context executeFetchRequest:request error:&er];
    NSLog(@"the count of results = %d", [results count]);
4

1 回答 1

2

您必须使用%K属性,而不是%@

NSPredicate *p = [NSPredicate predicateWithFormat:@"%K == %@", attribute, [NSNumber numberWithInt:value]];
于 2013-05-06T08:48:47.627 回答