2015-04-01 62 views
-2

我想將以下兒子結構保存到核心數據中。核心數據架構問題NSDictionary?

// Json的#1

{ 
1 = Viktor; 
2 = Fries; 
3 = "0179 2147911"; 
custom =  { 
    name = Test; 
    school = Harvard; 
}; 
id = 0232; 
status = 4; 
lastupdate = 111111; 

}

// JSON#2

{ 
1 = Viktor; 
2 = Fries; 
3 = "0179 2147911"; 
custom =  { 
    age = Testage; 
    color = blue; 
}; 
id = 0232; 

}

用戶可以通過自己的自定義定製的條目。兩個JSON數據都應該使用相同的模型保存。

我想我必須使用NSDictionary的自定義字段。 你覺得呢? 我如何訪問NSFetchedresultController中的自定義字段?

//型號

class Contact: NSManagedObject { 

@NSManaged var 1: String? 
@NSManaged var 2: String? 
@NSManaged var 3: String? 
@NSManaged var id: String? 
@NSManaged var status: String? 
@NSManaged var lastupdate: String? 
@NSManaged var id: NSDictionary? <= Don't know how to implement it?! 
} 

會如何,你應該解決這個問題?

回答

0

我將實現custom作爲一個獨立的實體,說CustomValue並給它兩個屬性,name(這可能是「年齡」,「色」,「姓名」,「學校」,或任何其他用戶選擇)和value(它將保持相應的值,「38」,「藍色」或其他)。然後定義從您的Contact實體到CustomValue的一對多關係。

一個小問題是,value必須始終是相同的類型(對於該字符串可能是最簡單的),所以你需要將該字符串轉換爲正確的類型(例如「年齡」的Int。

如果您將關係名爲customValues,那麼使用關鍵路徑訪問這些值很容易:myContact.customValues.namemyContact.customValues.value