我不熟悉ios学习。在这里,我从核心数据开始。在这里,该教程链接了核心数据。在这里,我了解了模型和创建属性。就像输入所有数据后,我们必须按,save
然后输入的数据将保存在模型中并在表格视图中显示。我知道managed object
是由我们的应用代码创建的用于存储数据的对象。
我的怀疑:
按下save
按钮后。如何触发输入的数据以显示在表格视图中,以及如何将这些数据保存在模型中(核心数据)。我对这部分感到困惑。
当我们输入所有数据时,以及当我们按下save
该数据时,这些数据如何保存在核心数据中以及如何以表格视图显示。它是如何工作的。我要求以理论和实践的方式。
display
表格视图中的数据触发了哪种方法。以及如何entered data are storing in core data (model)
如果我们在表视图中删除任何数据,那么该数据也不会显示在模型中。如何,那是如何工作的。当我们按下save
该数据如何保存到核心数据中(模型-属性)时
例子:
它们使用3个属性:
我不知道他们如何储蓄。请不要拒绝投票。这是我的第一个问题,它将对新手入门有所帮助。
当我们输入所有数据并按保存时,这些数据如何保存到核心数据中...
保存按钮具有一个-save:
在您按下按钮时触发的动作。该方法如下所示:
- (IBAction)save:(id)sender {
NSManagedObjectContext *context = [self managedObjectContext];
// Create a new managed object
NSManagedObject *newDevice = [NSEntityDescription insertNewObjectForEntityForName:@"Device" inManagedObjectContext:context];
[newDevice setValue:self.nameTextField.text forKey:@"name"];
[newDevice setValue:self.versionTextField.text forKey:@"version"];
[newDevice setValue:self.companyTextField.text forKey:@"company"];
NSError *error = nil;
// Save the object to persistent store
if (![context save:&error]) {
NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}
[self dismissViewControllerAnimated:YES completion:nil];
}
此方法的重要思想是:
托管对象上下文:方法要做的第一件事是获取对应用程序的托管对象上下文的引用,即管理所有托管对象的对象。
创建一个托管对象:接下来,该方法创建一个新的托管对象,其中将包含设备信息。它存储您在新对象中输入的数据。该对象已经属于托管对象上下文,因为在创建托管对象时必须指定MOC。
保存上下文:if
语句条件部分中的调用将保存上下文,即将其更改写出到持久性存储中。
在本教程的后面,-save:
修改了该方法以也更新现有对象。您可以查看代码,然后看到该方法的版本会首先检查以查看视图控制器是否正在使用现有对象;否则,请执行以下操作。如果是,那么它将更改该对象,而不是创建一个新对象。
...并以表格视图显示。
标准UIViewController
方法之一是-viewDidAppear:
,并且DeviceViewController
按如下所示重写此方法:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
// Fetch the devices from persistent data store
NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Device"];
self.devices = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];
[self.tableView reloadData];
}
如您所见,此方法执行以下操作:
获取托管对象的上下文:没有MOC,您将无法访问Core Data对象。
创建并执行提取请求:提取请求是您从Core Data存储中检索特定对象的方式。提取请求的结果是一个对象数组,该对象数组保存到视图控制器的devices
属性中。
重新加载表:将-reloadData
消息发送到表会告诉它从其数据源(意外)加载新的数据集。视图控制器是表的数据源,因此当表请求新的单元格时,视图控制器将使用其devices
属性中的对象配置每个单元格。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句