我正在将 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 文档或在线任何地方找到一个很好的例子来说明如何做到这一点。任何事情都值得赞赏。:)