三个问题,但它们都是相关的。如果你喜欢我可以把它们分成三个问题,这样你可以获得更多的学分。让我知道你是否希望我这样做。保存和删除NSManagedObject&NSManagedObjectContext
我有下面的代码,让我访问NSManagedObject
self.managedObjectContext = [(STAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
NSError *error;
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"LetsMeet" inManagedObjectContext:managedObjectContext]];
NSArray *objectArray = [managedObjectContext executeFetchRequest:request error:&error];
if(objectArray.count==0){
letsMeet = (LetsMeet *) [NSEntityDescription insertNewObjectForEntityForName:@"LetsMeet" inManagedObjectContext:managedObjectContext];
} else{
letsMeet = (LetsMeet *)[objectArray objectAtIndex:0];
}
上面的代码让我来保存和检索属性。即我可以访问letsMeet.attribute来保存和获取。
问题1:如何删除并启动全新的managedObjectContext。即用户具有他已经在场景之间填写的表格。当用户点击导航控制器上的下一个按钮时,所有内容都会从每个场景保存到CoreData。经过几个屏幕之后,用户想要取消该表单。在这一点上,我想删除到目前为止保存的所有内容。代码示例请。
问题2:让我们说用户打开窗体的结尾并决定保存窗体供以后检索。如何将整个表单的副本保存为核心数据中的一个对象。代码示例请。
问题3:我如何从Core Data稍后检索保存的对象并显示所有用户保存的内容?代码示例请。
谢谢拉克什。它在这里迟到了,我会在AM上演这一幕。在继续构建应用程序时,我将添加更多对象。我会在上午通知你。顺便说一句,我还没有想出如何获得objectID呢。 – user1107173 2013-02-28 04:59:06
至于#3,我希望在完成时保存对象,并在基于Timestamp的UItableview中将它们拉起来。所以当你说我只有一个对象时,你的意思是managedObjectContext中的一个对象吗?可能是我混淆了这两个。当前对象将是用户将在objectArray [0]上工作的对象。其他对象将是在用户完成表单时将保存的对象,并显示为UItableview中的历史记录。我希望我有道理。谢谢。 – user1107173 2013-02-28 05:53:14
您只能通过managedObjectContext访问核心数据对象。在执行提取请求之后,resultArray [0]将是数组中唯一的对象,并且将是您要提取的对象。根据您的评论而不是formId/objectId,您将使用时间戳执行获取。按日期设置谓词看这里http://stackoverflow.com/questions/1965331/nspredicate-filtering-objects-by-day-of-nsdate-property。 – Rakesh 2013-02-28 11:50:07