我正在構建一個應用程序,並試圖讓我的頭腦圍繞着CoreData的概念。我已經創建了一個基於此鏈接中的建議應用程序的數據模型......瞭解iOS中的CoreData Swift
Apple "Define Your Data Model" Link
目前,我只是用本地一些測試數據用於開發目的。下面是示例對象類,我創建...
import UIKit
func ==(lhs: Recipe, rhs: Recipe) -> Bool {
return lhs.hashValue == rhs.hashValue
}
class Recipe: Hashable {
dynamic var ID : Int = 0
dynamic var recipeName: String = ""
dynamic var recipeDescription:String = ""
dynamic var servings: Int = 0
dynamic var cookTime: Double = 0.0
dynamic var image: String? = ""
var hashValue : Int {
get {
return "\(self.ID)".hashValue
}
}
init?(id: Int, name: String, description: String, servings: Int, cooktime: Double, image: String) {
self.ID = id
self.recipeName = name
self.recipeDescription = description
self.servings = servings
self.cookTime = cooktime
self.image = image
if id < 0 || name.isEmpty || description.isEmpty || cookTime < 0 || servings < 0 {
return nil
}
}
}
,我已初始化一些局部發展過程中使用這些對象,他們工作得很好。
我的問題是...
當談到時間使用存儲像CoreData或RealmSwift,將這種類型的數據模型無關?我會創建一個全新的數據模型(例如Realm)?或者這種類型的數據模型能夠很好地與其中一種數據庫模型搭配使用?
最重要的是,現在是否會構建我的數據模型,並在引入大量代碼重構後整合CoreData或RealmSwift?如果是這種情況,那麼在繼續前進之前放棄前端開發並構建整個數據模型是可取的?
我不知道Realm,但是通過Core Data,您通常會在Xcode中選擇您的託管對象模型,然後轉到「Editor-> Create managed object subclass」 Xcode爲你創建實體類 – Paulw11
我明白了。那麼當用戶想要在本地存儲一些數據或訪問一些本地數據時,它將通過核心數據而不是上述目標代碼中的初始化程序完成? –
如果您使用的是核心數據,那麼您需要使用NSManagedObject來存儲數據。你可以直接使用'NSManagedObject'並設置/獲取值,但Xcode爲你創建的子類可以讓你說'myRecipe.servings'並將它映射到NSManagedObject。本質上Xcode會創建一個類,與你所顯示的類非常相似,只不過它的子類NSManagedObject,所以它可以被保存到核心數據 – Paulw11