首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >目标C核心数据:获取几个实体

目标C核心数据:获取几个实体
EN

Stack Overflow用户
提问于 2013-09-05 09:01:32
回答 1查看 130关注 0票数 0

刚从CoreData开始,只是想知道如何创建“复杂的”FetchRequest。我有以下的数据结构(问题很小):

有几本书和几个人(创作者)。创作者可以是作者、译者、插画家(.)。有些“创造者”有几个“角色”,这就是为什么我最终选择了"CreatorBook-Entity",因为有时同一个创作者对不同的书有不同的角色。

不管怎样..。在这个应用程序中,我展示了Book,还有一个CollectionView和来自同一个作者的其他Books (=Creatorrole= Author)。我试图创建一个FetchRequest,但不知道如何组合不同的实体,所以现在我遍历CoreData,如下所示:

代码语言:javascript
复制
//Get all Creators from Book and get the first Author
Creator* author;
NSSet* creatorSet = self.book.creator;  
if( [creatorSet count] > 0 ){
    for(CreatorBook *uObjects in creatorSet){
        if([uObjects.role isEqualToString:@"Author"]){
            author = uObjects.creator;
            break;    //get first author 
        }
    }
}

//Get all the Book from the same Author
if(author != nil){

    NSSet* authorBooks = author.book;

    NSMutableArray* books = [[NSMutableArray alloc] init];
    for(CreatorBook* object in authorBooks){
        Book* a = object.book;

        [books addObject:a];

    }
    _authorBookCollection = books;

    [self.bookPreview reloadData];
}

是否有一种方法可以通过一个FetchRequest获得相同的结果?

如果有多个Books,我如何获得所有的Author?(上面的代码在第一步就停止了)

是否可以从Creator中获取由属性排序的所有Books (例如,作者全名(多个作者->展示书籍多次))?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-05 10:51:40

首先,Book的属性名creator具有误导性。一本书可能有一个以上的创作者,即作者、插画家等,所以我用creators (复数)来反映多方面的关系。类似地,我将to -多关系从Creator重命名为join表books

第二,我假设这本书只有一个作者--或者一个具有相同角色的创作者。当然,这是可以想象的,这可能是不同的(这也有一个解决方案)。

代码语言:javascript
复制
NSSet *creatorsOfThisBook = book.creators;
Creator *authorOfThisBook = [[creatorsOfThisBook filteredSetUsingPredicate:
   [NSPredicate predicateWithFormat:@"role = %", @"author"]] anyObject];
NSSet *booksByThisAuthor = [[authorOfThisBook.books filteredSetUsingPredicate:
   [NSPredicate predicateWithFormat:@"role = %", @"author"]]
   valueForKeyPath:@"book"];

您可以看到,如果Creator只是一个作者,则可以省略第二个谓词。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18632051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档