【发布时间】:2011-07-28 15:47:25
【问题描述】:
到目前为止我有什么:
在一个拆分视图中,我有一个 tableview 作为它的主视图,一个 UIView 作为细节。 tableview 有 2 列:“Days”,然后是“Sessions”。我从核心数据(称为“会话”的实体)中获取数据。当我单击“会话”tableviewcell 时,详细视图会更新。
在详细视图中,我在导航栏中添加了一个“添加”按钮。当您单击它时,我会在核心数据中添加一个名为“NewSession”的新实体。
if ([_sessionData.added isEqualToNumber:[NSNumber numberWithBool:NO]]) {
[_sessionData setValue:[NSNumber numberWithBool:YES] forKey:@"added"];
SessionData *session = (SessionData*) [NSEntityDescription insertNewObjectForEntityForName:@"NewSessions" inManagedObjectContext:[DataSingleton sharedMySingleton].managedObjectContext];
session.startDate = _sessionData.startDate;
session.endDate = _sessionData.endDate;
session.sessionLocation = nil;
session.sessionTitle = _sessionData.sessionTitle;
session.sessionDescription = _sessionData.sessionDescription;
[session setValue: [NSNumber numberWithBool:YES] forKey:@"added"];
_addButton = [[[UIBarButtonItem alloc] initWithTitle:@"Remove" style:UIBarButtonSystemItemAdd target:self action:nil] autorelease];
NSError *error = nil;
if (![[DataSingleton sharedMySingleton].managedObjectContext save:&error]) {
DebugLog(@"Whoops, couldn't save:%@", [error localizedDescription]);
}
}
else {
NSLog(@"SESSION ALREADY ADDED");
}
另一个 splitview 的 tableview 获取“NewSession”实体,并获取所有数据并显示它。
问题:
每当我退出应用程序并重新启动它时,另一个拆分视图中的会话仍然存在,但我可以再次添加相同的会话。
在“添加”代码中,我有以下内容:
[_sessionData setValue:[NSNumber numberWithBool:YES] forKey:@"added"];
现在,我的 sessionData 是一个 NSManagedObject;我认为只需设置这些值就会在核心数据中更新它们。
谁能帮忙?
【问题讨论】:
标签: objective-c core-data entity nsfetchrequest