2012-06-08 57 views
0

在我的项目中,我实现了核心数据以将批量数据保存在多个实体下。实体之一是“优惠券”,它有近10个属性。一个是用户名。当应用程序打开时,我需要根据登录的特定用户获取所有条目。当用户输入每个条目时,用户名已保存到核心数据中。我怎样才能为此设置谓词?我是核心数据概念的新手。这就是我如何获取实体优惠券下的所有结果。根据目标中的特定属性获取核心数据的结果c

NSPredicate *pred = [NSPredicate predicateWithFormat:@"Category BEGINSWITH[c] @"All" and Used == NO"]; 
[request setPredicate: pred]; 

NSArray *objects = [context executeFetchRequest:request error:&error]; 
NSLog(@"%@arry",objects); 

if ([objects count]>0) { 
    [self.couponList addObjectsFromArray:objects]; 
} 

[request release]; 

任何帮助或建议将不胜感激。提前感谢!

回答

1

您的谓词语法错误。您需要将参数替换为格式字符串。

另外,您的谓词似乎与用户名无关。为什么?

[NSPredicate predicateWithFormat:@"username = %@", userName]; 
// or, including your existing predicate: 
[NSPredicate predicateWithFormat:@"username = %@ && 
            category BEGINSWITH[c] %@ && 
            used == %@", 
    userName, @"All", [NSNumber numberWithBool:NO]]; 

请注意,我用categoryused较低的首字母。我认为这些是您实体获取的属性,因此按照惯例,第一个字母应该很小。

此外,如果您愿意,您实际上也可以使用您的版本used == NO