ios Core Data 获取特定值

Posted

技术标签:

【中文标题】ios Core Data 获取特定值【英文标题】:ios Core Data Fetch a specific value 【发布时间】:2014-04-22 01:15:32 【问题描述】:

所以我正在阅读 Apple 的核心数据指南和 Stack 上的问题,这一切都是正确的,但我的脑海中并没有完全“点击”。

我有一个 BookShop,它具有一对多的 Books 关系。

我进入了一家名为“Jenny's BookShop”的书店和一家名为“BigWorld Books”的书店。

这就是我将“新书”添加到“新书店”的方式:

BookShop *myBookShop = [NSEntityDescription insertNewObjectForEntityForName:@"BookShop" inManagedObjectContext:context];

myBookShop.books = [[NSMutableSet alloc]init];

Book *myBook = [NSEntityDescription insertNewObjectForEntityForName:@"Book" inManagedObjectContext:context];

myBook.BookShop = myBookShop;

[myBookShop addBookObject:myBook];

假设我想要一本书只属于“BigWorld Books”而不属于“Jenny's BookShop”。

我假设我使用获取请求并获取指向“BigWorld Books”的指针,然后将一本书分配给这个特定的书店?这是我一直搞砸的地方。

如果有人可以“慢慢地”解释这一点,将不胜感激。

编辑:

答案:

        NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@"];
        [request setPredicate:predicate];
        [request setFetchLimit:1];
        BookShop *resultBookShop = [[_managedObjectContext executeFetchRequest:request error:&error] lastObject];
        [myBook setBookShop:resultBookShop];

【问题讨论】:

你怎么“搞砸了”?出了什么问题?错误?零值? 我只是没有实现我的目标,即成功地将特定书籍添加到特定的书店。每次我将一本书添加到书店时,它似乎都会添加到所有书店。你想要一个示例 sn-p 代码吗?我还没有发布代码的原因是我想看看其他人会如何做,而不是仅仅修复我的。 其他帮助我的问题:***.com/questions/11572096/… 【参考方案1】:
//if BookShop with name BigWorld Books not existed, create. If existed, use it
BookShop *bookshop = [self isExistedEntityWitName:@"BigWorld Books" entity:@"BookShop"];
if(!bookshop)
  //insertNewObjectForEntityForName
else
  //bookshop is existed
  //insert new book
  Book *b = [NSEntityDescription insertNewObjectForEntityForName:@"Book"
                                             inManagedObjectContext:context];
  //add new book (b) to NSSet of bookshop, and you have NSSet *books
  bookshop.books = books;

【讨论】:

我已经使用这个和我在堆栈上找到的另一个答案来完全回答这个问题,谢谢!我会发布我所做的并标记正确!

以上是关于ios Core Data 获取特定值的主要内容,如果未能解决你的问题,请参考以下文章

Core Data iCloud 获取有时不会产生数据(iOS)

根据 Swift Core Data 中的关系获取与特定实体相关的所有条目

有没有比获取请求更快的方法来检索 Core Data 中的特定托管对象?

在 Core Data 中更改托管对象模型的属性值时崩溃

IOS/objective-c/core-data:如何从相关实体获取属性

如何从 PickerView 中的 Core Data 中获取数据? iOS