【发布时间】:2013-08-13 22:14:20
【问题描述】:
假设我有 2 个实体 -- Athlete:with "fullname" 属性 -- Eval:with "pullups" 属性 -- 我想为每个名字设置多个 eval,但是我如何告诉它哪个名字我想将特定的评估添加到?
我的应用与 iOS 预装的联系人应用非常相似。根视图控制器有我的第一个实体,运动员。这是一个显示所有运动员的表格视图。当您选择一名运动员时,它会显示他/她的所有信息,并且有一个名为 show eval 的按钮。 Eval 是我的第二个实体。 Athlete 与 Eval 是一对多的关系,这意味着一个运动员可以有多个 eval,但 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];
}
视图控制器如下,所有运动员的tableview都是根tableviewcontroller,然后有一个add barbuttonitem可以添加运动员。它重新加载视图,然后在 tableview 上你有你新添加的运动员,你点击他,然后它显示细节,加上一个按钮来查看他的 evals。从那里,它是另一个带有 barbuttonitem 的 eval 表视图用于添加。问题是,我不知道如何告诉刚刚添加的 eval 它的所有者是谁。
【问题讨论】:
-
您何时/何地创建评估?我猜你当时有那个运动员?
-
@Wain 将编辑我的问题。请再检查一遍:-)
标签: ios objective-c cocoa-touch cocoa core-data