【问题标题】:Check the existence of an object in Core Data [closed]检查Core Data中是否存在对象[关闭]
【发布时间】:2012-04-19 19:32:34
【问题描述】:

我在回答另一个问题时找到了这段代码:

NSError *error = nil;
NSUInteger count = [managedObjectContext countForFetchRequest:request error:&error];
[request release];

if (!error){
  return count;
}
else
  return 0;

问题是,我不知道我的 fetch 请求是什么,以便让它只可能返回我的对象​​,而没有其他对象。

【问题讨论】:

  • 请注意这里的错误处理是不正确的; as is generally the case in Cocoa,在检查错误对象之前必须检查直接返回值(count)。在这种情况下,the docs say 表示返回 NSNotFound 表示错误。
  • “我的对象”是什么意思?您必须创建一个 NSPredicate 来确定您的获取条件。
  • 您应该提供实体名称和您感兴趣的属性以便我们帮助您)
  • 您应该添加更多代码,关于您要检索的对象类型等。
  • Andrew:说真的,您成为 stackoverflow 的成员已经超过 15 个月了。在那段时间里,你已经在 objc/cocoa/iOS 上提出了大约 300 个问题。而且您仍然只是从其他帖子中复制和粘贴代码,将其放入您的帖子中,而不是期望我们填写其余部分。我真的没有动力以这种态度帮助你。我相信其他人也会有同样的感受。

标签: objective-c ios core-data


【解决方案1】:

请求是 NSFetchRequest。您创建一个,并使用它来查找您的对象。比如……

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Person"];
request.predicate = [NSPredicate predicateWithFormat:@"ssan = %@", ssan];

现在,您使用该 fetch 请求,它将找到所有具有与字符串变量匹配的属性“sean”的“Person”实体。

如果您只想找到一个对象,则需要某种类型的唯一标识符进行搜索。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 2012-07-27
    • 2018-09-09
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多