私は現時点でアプリケーションを構築しており、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の場合)?このタイプのデータモデルは、DBモデルの1つでうまくいくでしょうか?
最も重要なのは、今のようなデータモデルを構築し、多くのコードリファクタリングの原因となったCoreDataまたはRealmSwiftを組み込むことでしょうか?この場合、フロントエンドの開発を中止し、データモデル全体を構築して前進することをお勧めしますか?
Realmについてはわかりませんが、コアデータでは、Xcodeで管理対象オブジェクトモデルを選択してから、「エディタ - >管理対象オブジェクトサブクラスの作成」に移動します。 Xcodeはエンティティクラスを作成します – Paulw11
私は参照してください。だから、ユーザーがいくつかのデータをローカルに保存したり、ローカルデータにアクセスしたりする場合は、上記のオブジェクトコードのイニシャライザではなく、コアデータを使用します。 –
コアデータを使用している場合は、 'NSManagedObject'を使用してデータを格納する必要があります。あなたは 'NSManagedObject'を直接使用することができ、単に値を設定/取得できますが、Xcodeが作成するサブクラスを使用すると、' myRecipe.servings'と言ってそれをNSManagedObjectにマッピングすることができます。基本的にXcodeは、NSManagedObjectをコアデータに永続化できるようにすることを除いて、あなたが示したクラスに非常に似たクラスを作成します。 – Paulw11