2017-01-09 67 views
1

我正在設計一個健康和健身應用程序,並且我正在設計一個鍛鍊數據庫。我將所有練習從JSON格式轉換並存儲到與它們相關的肌肉組相關的多個數組中。我爲每個肌肉組創建了多個實體,然後在每個實體內部創建了一個名爲「Exercises」的屬性。計劃是將與肌肉羣相關的練習存儲到正確的實體中。我試過使用for循環遍歷數組並保存值。但是它似乎只是將每個數組中的一個值保存到一個屬性中。如何將多個值存儲到CoreData中的一個屬性中?

這是我將使用嘗試,並保存到CoreData陣列的一個例子...

let chestExercises = ["Bench Press", "Incline Press"] 
let backExercises = ["Lat Pulldown", "Pullover"] 

我使用CoreData這樣做的原因是因爲我希望我的用戶能夠編輯/刪除數據庫中的任何練習。

我真的很感謝任何幫助,並就我採取的這種方法的建議。謝謝

回答

2

你在那裏有一對多的關係,所以你應該製造另一個名爲Exercise的實體,並給它一個1:M的關係,假設你沒有在多個組中進行任何練習。

實際上,您可能只是將muscleGroup作爲Exercise的一個屬性而逃脫。當你去選擇一組練習時,只要給出一個謂詞來篩選肌肉組的要求。 MuscleGroup然後可以是一個枚舉,並存儲一個整數,表示每個練習的枚舉成員。

但是,正確的答案將取決於你想要持續存儲的所有數據,例如,如果存在與MuscleGroup或Exercise相關的其他屬性。

+0

那麼我想存儲每個練習的獨特描述(字符串)和每個練習的圖片(字符串)。感謝您的答覆。 –

+0

所以是的,你並不需要肌肉羣實體?它可以是一個屬性,可以讓您在執行選擇語句時篩選練習。 –

0

這是我如何將數組保存到CoreData。

var exerciseName: String = "" 
let chestExercises = ["Bench Press", "Incline Press"] as NSArray 
let chestString = chestExercises.componentsJoined(by: ",") 
exerciseName = chestString 

然後我將exerciseName設置爲CoreData中的字符串。