2013-07-16 22 views
1

我使用MagicalImport(version 2.1)MR_importFromArray方法導入了一個json數組。我試圖檢索導入的NSManagedObjects使用MR_findAll沒有任何成功。我這裏還有我至今嘗試過的變化: 如何使用MagicalImport導入數據後保存上下文?

//Attempt 1 
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) { 
    [Thread MR_importFromArray:threadsData]; 
} completion:^(BOOL success, NSError *error) { 
    NSArray *allThreads = [Thread MR_findAll]; 
}]; 

//Attempt 2 
[MagicalRecord saveUsingCurrentThreadContextWithBlock:^(NSManagedObjectContext *localContext) { 
    [Thread MR_importFromArray:threadsData inContext:localContext]; 
} completion:^(BOOL success, NSError *error) { 
    NSArray *allThreads = [Thread MR_findAllInContext:[NSManagedObjectContext MR_contextForCurrentThread]]; 
}]; 

//Attempt 3 
NSManagedObjectContext *context =[NSManagedObjectContext MR_defaultContext]; 
[Thread MR_importFromArray:threadsData inContext:context]; 
[context MR_saveToPersistentStoreAndWait]; 
NSArray *allThreads = [Thread MR_findAllInContext:context]; 

//Attempt 4 
[Thread MR_importFromArray:threadsData]; 
[[NSManagedObjectContext MR_contextForCurrentThread] MR_saveToPersistentStoreAndWait]; 
NSArray *allThreads = [Thread MR_findAll]; 

這裏就是我在控制檯中看到的錯誤:

-[NSManagedObjectContext(MagicalSaves) MR_saveWithOptions:completion:](0xb2566e0) NO CHANGES IN ** DEFAULT ** CONTEXT - NOT SAVING 

任何想法,我做錯了什麼?

回答

1

找到了答案。看起來像MR_importFromArray中有一個錯誤。當我手動迭代對象並將它們保存到上下文時,它可以正常工作。方法如下:

[MagicalRecord saveUsingCurrentThreadContextWithBlock:^(NSManagedObjectContext *localContext) { 
    [threadsData enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 
    [Thread MR_importFromObject:obj]; 
    }]; 
} completion:^(BOOL success, NSError *error) { 
    NSArray *allThreads = [Thread MR_findAll]; 
}]; 
1
[[NSManagedObjectContext MR_defaultContext]saveToPersistentStoreAndWait]; 
相關問題