【问题标题】:Getting the results from core data based on a particular attribute in objective c根据目标 c 中的特定属性从核心数据中获取结果
【发布时间】:2012-06-08 15:03:50
【问题描述】:

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

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];

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

【问题讨论】:

    标签: objective-c ios xcode core-data


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-12
      • 2015-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多