使用特定对象而不是对象属性获取核心数据

Posted

技术标签:

【中文标题】使用特定对象而不是对象属性获取核心数据【英文标题】:Core data fetch using specific object rather than object attribute 【发布时间】:2012-02-18 15:04:20 【问题描述】:

我一直在搜索论坛,并在另一个用户问题上找到了一些代码,这是我所追求的 99%。下面的代码片段...

Bookshop *bookshop = (Bookshop *) nsManagedObjectFromOwner;

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Books" 
                      inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];

NSPredicate *predicate = [NSPredicate predicateWithFormat:
          @"ANY bookshop.Name == '%@'", 
          bookshop.Name];
[fetchRequest setPredicate: predicate];

在此提取中,谓词正在搜索属于特定名称的书店的所有书籍。然而,在我的应用程序中,我相当于书店的是客户,客户可能具有相同的名称。鉴于我自己没有在客户端实体中声明任何唯一标识符,设置谓词的最佳方法是什么?

【问题讨论】:

【参考方案1】:

啊...我已经想通了。对于那些有同样问题的人......

...如果您已经拥有 'bookshop' 对象,您可以简单地使用以下符号来引用它的 'books'...

bookshop.books

所以这可以如下使用...

NSSet *books = bookshop.books;
NSArray *booksArray = [[NSArray alloc] init]]
booksArray = [books allObjects];

然后你有一个 NSArray ,其中包含你可以使用的所有书籍对象。

你好快!!

【讨论】:

以上是关于使用特定对象而不是对象属性获取核心数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 NSPredicate 获取核心数据对象数组?

Django ORM:如何根据所有记录中的列获取唯一记录(需要模型对象而不是特定值对象)

如何查询具有特定属性值的核心数据对象

核心数据在获取时是不是返回对象AsFaults = NO 也有错误关系?

核心数据获取实际存储在persistentStore中的数据,而不是实体的所有对象(persistentStored +最新创建的obj)

从核心数据中检索特定对象