CoreData を既存の iOS プロジェクトに追加する作業を行っていますが、抽象クラスから継承する子クラスに表示されるデータに問題があります。
Object
目的の子エンティティ/具象クラスの共有フィールド セットを定義する抽象クラス ( ) があります。抽象クラスにはtitle
、startDate
たとえば、が含まれます。の親エンティティを持つようにデータ モデルでセットアップされますObject
。 Object
データモデルで抽象クラスとして設定されます。
私の子エンティティ ( Expense
) にはプロパティがありますamount
(特に)。
通常、次のように経費の作成を開始します。
Expense *expense = [NSEntityDescription insertNewObjectForEntityForName:NSStringFromClass([Expense class]) inManagedObjectContext:[Store sharedStore].managedObjectContext];
次に、目的のプロパティを設定します。
expense.amount = [NSDecimalNumber decimalNumberWithString:amountString];
expense.title = title;
expense.startDate = [NSDate dateFromString:dateString withFormat:@"yyyy-MM-dd"];
(other properties on expense set here)
.
.
次に、コンテキストで save を呼び出します。
[[Store sharedStore].managedObjectContext save:&error];
これはYES
CoreData に格納されているため返されます。
ただし、経費の金額 (またはその他の設定されたプロパティ) を記録しようとすると、プロパティの種類に応じて、nil、0 などになります。
私のプロジェクトには他の基本エンティティ/モデルがあり、この方法で問題なく保存されているため、オブジェクト コンテキストを処理する CoreData セットアップまたは Store クラスとは関係ありません。抽象クラスで特定の問題が発生しました。
子クラスのプロパティが正しく保存されるように、抽象クラスの子エンティティを設定するにはどうすればよいですか? 私は車輪を回転させていますが、Apple ドキュメントやオンラインのどこにも、その方法の良い例が見つからないようです。何でも大歓迎です。:)