首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用-许多关系

如何利用-许多关系
EN

Stack Overflow用户
提问于 2013-08-13 22:14:20
回答 3查看 74关注 0票数 0

假设我有两个实体--运动员:用“全名”属性-- Eval:用"pullups“属性--我想为每个名字设置多个等值线,但是我如何告诉它我想要添加哪个名字呢?

我的应用程序与iOS预装的联系人应用程序非常相似。根视图控制器有我的第一个实体,运动员。这是一个展示所有运动员的桌面视图。当你选择一个运动员的时候,它会显示他/她所有的信息,还有一个按钮叫做“显示评估”。伊瓦尔是我的第二个实体。运动员与Eval有很多的关系,这意味着一个运动员可以有多个水平,但水平只能有一个运动员。我知道如何添加水平,但当我加上它们时,它们就在那里,它们没有所有者,所以不管我选择哪个运动员,它只显示所有的水平。我如何创建一个与被选中的运动员相关的级别?

allevals.h

代码语言:javascript
复制
//the athlete selected pushes a tableviewcontroller with all evals, but I want it to only show evals for the athlete selected.
-(void)viewWillAppear:(BOOL)animated{
    self.title = [NSString stringWithFormat:@"%@'s Evaluations",_athletesFullName];

    AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    _managedObjectContext = [appDelegate managedObjectContext];

    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    NSEntityDescription *eval = [NSEntityDescription entityForName:@"Eval" inManagedObjectContext:_managedObjectContext];
    [request setEntity:eval];
    NSSortDescriptor *sortDescriptor =
    [[NSSortDescriptor alloc] initWithKey:@"date_recorded"
                                ascending:NO
                                 selector:@selector(localizedCaseInsensitiveCompare:)];
    NSArray *sortDescriptors = [[NSArray alloc]initWithObjects:sortDescriptor, nil];
    [request setSortDescriptors:sortDescriptors];

    NSError *error = nil;
    NSMutableArray *mutableFetchResults = [[_managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
    if (mutableFetchResults == nil){
        //handle error
    }
    [self setEvalArray:mutableFetchResults];
    [self.tableView reloadData];
}

视图控制器如下所示,所有运动员的表视图都是根表控制器,然后有一个添加按钮项,允许您添加运动员。它重新加载视图,然后在桌面视图上有新添加的运动员,单击他,然后显示详细信息,再加上一个按钮查看他的水平。从那里,它是另一个表的水平与一个巴顿项目添加。问题是,我不知道怎么告诉那个刚刚添加了谁是它的主人。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-13 23:01:41

在添加新eval时:创建新eval实体,并根据需要设置实体属性。选择跟这个世界一起去的运动员,打电话给addEval:,把两者联系起来。

当试图获取运动员的所有水平时,请使用athlete.evals,它只会给出与所讨论的运动员相关联的评估实体。

票数 1
EN

Stack Overflow用户

发布于 2013-08-13 22:24:58

fetch请求有sot顺序和实体描述,但是您错过了它可以处理的第三个条目。

如果您只想过滤适用于运动员的各项,则需要在获取请求上设置一个谓词。

票数 1
EN

Stack Overflow用户

发布于 2013-08-13 22:36:50

当用户选择查看运动员的水平时,您需要将该运动员传递给evals视图控制器。视图控制器现在既可以在筛选谓词中使用它,也可以在获取要显示的值时在过滤器谓词中使用它,并且可以在创建新eval时配置对象之间的链接。

代码语言:javascript
复制
newEval.whoTook = self.currentAthlete;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18220130

复制
相关文章

相似问题

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