【问题标题】:ios Core Data Fetch a specific valueios Core Data 获取特定值
【发布时间】: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 代码吗?我还没有发布代码的原因是我想看看其他人会如何做,而不是仅仅修复我的。
  • 其他帮助我的问题:stackoverflow.com/questions/11572096/…

标签: ios core-data


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

【讨论】:

  • 我已经使用这个和我在堆栈上找到的另一个答案来完全回答这个问题,谢谢!我会发布我所做的并标记正确!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-06
  • 2014-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-05
  • 2011-06-17
相关资源
最近更新 更多