假设我有两个实体--运动员:用“全名”属性-- Eval:用"pullups“属性--我想为每个名字设置多个等值线,但是我如何告诉它我想要添加哪个名字呢?
我的应用程序与iOS预装的联系人应用程序非常相似。根视图控制器有我的第一个实体,运动员。这是一个展示所有运动员的桌面视图。当你选择一个运动员的时候,它会显示他/她所有的信息,还有一个按钮叫做“显示评估”。伊瓦尔是我的第二个实体。运动员与Eval有很多的关系,这意味着一个运动员可以有多个水平,但水平只能有一个运动员。我知道如何添加水平,但当我加上它们时,它们就在那里,它们没有所有者,所以不管我选择哪个运动员,它只显示所有的水平。我如何创建一个与被选中的运动员相关的级别?
allevals.h
//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];
}视图控制器如下所示,所有运动员的表视图都是根表控制器,然后有一个添加按钮项,允许您添加运动员。它重新加载视图,然后在桌面视图上有新添加的运动员,单击他,然后显示详细信息,再加上一个按钮查看他的水平。从那里,它是另一个表的水平与一个巴顿项目添加。问题是,我不知道怎么告诉那个刚刚添加了谁是它的主人。
发布于 2013-08-13 23:01:41
在添加新eval时:创建新eval实体,并根据需要设置实体属性。选择跟这个世界一起去的运动员,打电话给addEval:,把两者联系起来。
当试图获取运动员的所有水平时,请使用athlete.evals,它只会给出与所讨论的运动员相关联的评估实体。
发布于 2013-08-13 22:24:58
fetch请求有sot顺序和实体描述,但是您错过了它可以处理的第三个条目。
如果您只想过滤适用于运动员的各项,则需要在获取请求上设置一个谓词。
发布于 2013-08-13 22:36:50
当用户选择查看运动员的水平时,您需要将该运动员传递给evals视图控制器。视图控制器现在既可以在筛选谓词中使用它,也可以在获取要显示的值时在过滤器谓词中使用它,并且可以在创建新eval时配置对象之间的链接。
newEval.whoTook = self.currentAthlete;https://stackoverflow.com/questions/18220130
复制相似问题