2015-10-13 53 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,則會返回基礎對象。考慮核心數據當你處理需要被搜索,即使你沒有在內存中的數據更大的數據。

相關問題