我正在研究核心数据库项目。我想知道可以看到哪些数据保存在coredata中而不提取它?
例如:
我正在使用本教程学习coredata。 **
我已经实现了以下方法来保存数据模型中的数据。(coredata)
- (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];
}
但我想知道,有没有办法在没有实现它的提取方法的情况下查看我的数据模型中保存了哪些数据?
从Coredata中获取:
答案 0 :(得分:3)
是。我们可以看到没有提取的已保存数据。 在文档目录中实现Save方法core-data save sql文件后。
您可以使用此行在nslog中打印它。
NSLog(@"%@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);
你可以在这样的日志中看到文件夹的完整路径。
2015-10-13 12:40:51.253 MyStore [1860:69256] file:/// Users / username / Library / Developer / CoreSimulator / Devices / C548BFA2-7B92-42E6-9D64-E16AFF0645D9 / data / Containers /数据/应用/ 9C24913C-B295-4AA1-8DE9-A261CAA21624 /文档/
然后你必须进入这个文件夹。选择 G0->转到文件夹... 选项。
然后在转到文件夹窗口中打印文档路径。
注意: - 您必须在转到文件夹中只编写此代码。 (来自〜/图书馆)
~/Library/Developer/CoreSimulator/Devices/C548BFA2-7B92-42E6-9D64-E16AFF0645D9/data/Containers/Data/Application/9C24913C-B295-4AA1-8DE9-A261CAA21624/Documents
然后按开始按钮。
你会找到你的sqlfile。
使用一些sqllite阅读器软件打开它。
SQL Lite pro这是读取.sql文件的最佳软件。用它打开你的文件。
您将在其中看到已保存的数据。
答案 1 :(得分:0)
在运行期间:否。 这是由于核心数据的性质。它是一个对象图,而不是数据持久性解决方案。如果他可以选择,则获取不会返回对象。
在您的应用之外,它取决于持久性(如果有的话)。如果你决定去sql商店,那么考虑一下sql的答案。如果您确实选择了不同的商店类型,那么它取决于您选择的类型。
对于大多数项目来说,基本的基础对象都很好,因为它们可以被序列化。如果您解析JSON,则会返回基础对象。当您处理需要搜索的更大数据时,即使您没有内存中的数据,也要考虑核心数据。