2015-07-19 148 views
0

我正在學Objective-C的iOS開發。我有一個有很多數據的plist,並希望將它們導入到應用程序中。此plist包含一個商店,其中包含:位置(映射爲實體),法院(映射爲實體),標題,副標題,地址,電話號碼和類別(映射爲實體)。我一直在研究,發現其中一個解決方案是使用CoreData + MagicalRecord。正確使用CoreData和MagicalRecord

這裏是我的映射(可能會提出修改建議): mapping

選擇附近後,你有一個類別表(這應該是該類別的實體),此表是一個主要的「細分」 plist中。在他選擇類別之後,應用程序將獲取第二個表格,該表格顯示每個包含點擊類別的商店。 storyboard

在我CategoriaViewController(CategoryViewController)我要加載所有商店的所有類別的方法,但不知道如何使用MagicalRecord保存的plist的類別在類別實體,它顯示在桌面上。在我的方法中,我甚至實例化類實體,但不知道如何使用它。

這裏是我的方法(翻譯):

- (void) loadCategories { 
self.category = [Category MR_createEntity]; 
self.listOfCategories = [[NSMutableArray alloc] init]; 
NSString *path = [[NSBundle mainBundle] pathForResource:@"Category" ofType:@"plist"] 
NSDictionary *myPlist = [NSDictionary dictionaryWithContentsOfFile:path]; 
self.listOfCategories = [myPlist objectForKey:@"categories"]; 
} 

而且here's我滿級。

回答

1

您的困惑源於您認爲某個實體是一張桌子的事實。但是,不,它只是對象圖中的一個對象。您必須爲要插入的每個對象調用MR_createEntity

[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) { 
    for (NSString *name in listOfCategories) { 
     Category *newCategory = [Category MR_createEntity]; 
     newCategory.name = name; 
    } 
} 

把整個事情變成saveWithBlock塊將其保存在後臺存儲。

+0

確切地說,我認爲/認爲一個實體與一個表相關。那麼,saveWithBlock方法在哪裏? –

+0

太好了,就接受答案吧。 – Mundi