2014-12-05 58 views
0

我正在用Swift學習Core Data,我想看看當前保存在我的ManagedObjectContext中的內容。 viewDidLoad()包括println(managedObjectContext!),它向控制檯輸出類似<NSManagedObjectContext: 0x1701f8500>的內容。顯示來自核心數據的屬性ManagedObjectContext

我如何看到我的LogItem的實際屬性是什麼?

感謝

回答

5

管理對象在NSManagedObjectContext未保存。他們被保存在一個持久存儲(如SQLite數據庫)。 NSManagedObjectContext用於將持久存儲中的託管對象加載到內存中並對其進行更改。然後,您將更改保存回持久性存儲或丟棄它們。

如果你想從持久存儲加載管理對象(實體的情況下,所謂的YourEntity)進入的NSManagedObjectContext,使用NSFetchRequest

let fetchRequest = NSFetchRequest(entityName: "YourEntity") 
if let fetchResults = managedObjectContext!.executeFetchRequest(fetchRequest, error: nil) { 
    println(fetchResults); 
} 

如果你想看到當前裝入的NSManagedObjectContext的對象,您可以使用registeredObjects方法。如果您只想查看更新/插入/刪除的對象,則可以使用以下方法:updatedObjects,insertedObjects,deletedObjects

3

_NSManagedObjectContext_通過實際加載相同的環境下這些對象到內存管理_NSManagedObjects_。所以如果你想顯示你的對象模型的內容,那麼你可以訪問managedObjectContext的_registeredObjects_屬性。但請記住,它只會招募/所有已加載到上下文的對象。

println(managedObjectContext!.registeredObjects); 
2

您可以看到託管對象上下文作爲您使用模型對象的工作臺。你加載它們,操縱它們,並將它們保存在工作臺上。加載和保存由持久性商店協調員調解。

let fetchRequest = NSFetchRequest(entityName: "Entity") 
    if let fetchResults = managedObjectContext!.executeFetchRequest(fetchRequest, error: nil) as?  [Entity] {    
     for info in fetchResults { 
     println(info.valueForKey("attribute")); 
     } 
    }