2013-11-26 107 views
2

我有我的數據庫中的1個實體「消息」的值MessageID,messageText和我想讀取核心數據的每一行,使我的類「消息」的對象,並把新對象數組。 這是我第一次使用Core Data,但我還沒有完全掌握它,我如何設法做到這一點。作爲對象讀取核心數據

回答

2

爲您希望檢索的實體創建獲取請求。不要給它一個謂詞,設置你想要的任何類型描述​​符。

在託管對象上下文中執行獲取請求,它將返回該實體所有對象的數組。

這是故意只是一個描述性的答案,你可以從核心數據入門文檔中找到如何做到這一點的具體細節;您是Core Data中的新成員,這是學習它的好方法。

此外 - 不要將核心數據視爲轉換爲對象的數據行。這是一個對象關係圖。它存儲實體對象和它們之間的關係。您不要將「行」轉換爲對象,直接返回對象。

+0

啊,謝謝。 我習慣於考慮行,這就是爲什麼我不理解它。 – user2414460

0

@Abizern與代碼響應:

NSManagedObjectContext *moc = // your managed object context; 
NSEntityDescription *entityDescription = [NSEntityDescription 
    entityForName:@"Message" inManagedObjectContext:moc]; 
NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
[request setEntity:entityDescription]; 

// You can also add a predicate or sort descriptor to your request 

NSError *error; 
NSArray *array = [moc executeFetchRequest:request error:&error]; 
if (array == nil) 
{ 
    // Deal with error... 
} 
+0

如何獲取數組中的值的引用?'array [0] .messageID'不起作用,它表示屬性messageID在'id'類型的對象上找不到。 – user2414460

+0

自己管理,謝謝你的回答。 – user2414460

+1

一種更現代的創建提取請求的方法 - 你可以在一行中完成而不需要創建NSEntityDescription - NSFetchRequest * request = [NSFetchRequest fetchRequestWithEntityName:@「Message」];'這已經在iOS 4以後可用。 – Abizern