2015-10-13 68 views
1

我正在开发核心数据库项目。我想知道是否有可能看到哪些数据保存在coredata中而没有获取它?IOS Coredata。是否有可能看到保存的数据而不提取它

例如:

我正在使用本教程来学习coredata。 **

Core Data demo from AppCoda

我有下面的实现方法保存在数据模型中的数据。(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:

enter image description here

+0

查看本教程http://code.tutsplus.com/tutorials/core-data-from-scratch-managed-objects-and-fetch-requests--cms-21284 – Vishnuvardhan

回答

3

是。我们可以看到保存的数据无需提取。 执行后在文档目录中保存方法core-data保存sql文件。

您可以使用此行在nslog中打印它。

NSLog(@"%@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]); 

并且您可以看到像这样在日志中打印的文档文件夹的完整路径。

2015年10月13日12:40:51.253的MyStore [1860:69256]文件:///用户/用户名/库/开发商/ CoreSimulator /设备/ C548BFA2-7B92-42E6-9D64-E16AFF0645D9 /数据/集装箱/数据/应用/ 9C24913C-B295-4AA1-8DE9-A261CAA21624 /文档/

那么你有这样的文件夹中去。选择G0->进入文件夹...选项。

enter image description here

然后打印文档路径前往文件夹窗口。

enter image description here

注: - 你只写这段代码在前往文件夹。 (从〜/库)

~/Library/Developer/CoreSimulator/Devices/C548BFA2-7B92-42E6-9D64-E16AFF0645D9/data/Containers/Data/Application/9C24913C-B295-4AA1-8DE9-A261CAA21624/Documents 

并按下GO 按钮。

你会发现你的sqlfile。

enter image description here

使用一些sqllite阅读软件打开它。

SQL Lite pro这是读取.sql文件的最佳软件。使用它打开你的文件。

,你会看到你保存的数据。

enter image description here

+1

下面是Swift的命令: '打印(NSFileManager.defaultManager()URLsForDirectory(.DocumentDirectory,inDomains:.UserDomainMask)。去年)' –

+1

而对于夫特3:'打印(FileManager.default.urls(为:.documentDirectory,在:.userDomainMask)。去年) ' –

0

在运行时:号 即由于核心数据的性质。它是一个对象图,而不是数据持久性解决方案。如果可以选择,提取不返回对象。

外你的应用程序的这取决于持久性(如有)。如果你决定去一个SQL商店,那么考虑SQL答案。如果你没有选择不同的存储类型,那就要看你去的类型。

对于大多数项目是基本的基础对象罚款,因为它们可以被序列化。如果解析JSON,则会返回基础对象。考虑核心数据当你处理需要被搜索,即使你没有在内存中的数据更大的数据。

相关问题