2016-08-17 43 views
0

我是CoreData和MR的新手。嘗試保存一些實體並在閱讀後進行閱讀。MagicalRecord使用

節省:

Events *newEvent = [Events MR_createEntity]; 
newEvent.title = @"qwe"; 
newEvent.date = [NSDate date]; 
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreWithCompletion:^(BOOL contextDidSave, NSError * _Nullable error) {}]; 

閱讀:

NSMutableArray *events = [NSMutableArray arrayWithArray:[Events MR_findAll]]; 
NSLog(@"%@",events); 

的結果我收到 「數據:<故障>」

如果我添加私人方面,如:

NSManagedObjectContext *context = [NSManagedObjectContext MR_newPrivateQueueContext]; 
NSMutableArray *events = [NSMutableArray arrayWithArray:[Events MR_findAllInContext:context]]; 

我的應用程序崩潰,錯誤原因:「+ entityForName:無不是尋找實體名稱的法律NSPersistentStoreCoordinator'活動」

能有人告訴我代碼爲我的任務工作

回答

0

你並不需要爲此添加任何私有上下文(如果您因其他原因而不需要它,顯而易見)。 "data: <fault>"是iOS的一部分。核心數據不會提取對象的信息,如果它們沒有直接訪問,這是出於性能原因的不錯選擇。所以,如果你想在控制檯中打印你的數組,你必須循環它並打印從數組中提取它的每一個元素。

for (Event *event in [Events MR_findAll]) { 
    NSLog(@"Event name : %@", event.name) 
} 

這應該很好。

PS:有一點建議,使用單數名稱爲您的實體,因爲它們代表一個單一的對象,一個類。不要認爲他們是桌子,因爲他們不是。

+0

感謝您的解釋,但此代碼仍輸出數據錯誤, 然而,我可以在此週期中打印事件屬性 – sedq

+0

@sedq yea,我編輯了代碼:) –