我正在尝试用Swift制作一个天气应用程序,将添加到Core Data中的城市保存下来,每个城市都包含一个天气对象,也保存在Core Data中,还有其他各种变量。
但很快我发现,在Core Data上下文之外使用NSManagedObjects子类几乎是不可能的(处理NSNumber等内容,没有自定义init,必须将它们保存在某个地方,如果明天不再使用Core Data会怎样...)。
那么保持使用Core Data但同时在其上下文之外使用模型的最佳实践是什么?
我目前的解决方案是为每个模型创建一个类,例如:
class City
{
var country: String?
var name: String?
// ...
}
这个类对应的是:
class CD_City
{
@NSManaged var country: String?
@NSManaged var name: String?
// ...
}
所以我可以随意在任何地方使用City
。但是我需要一个函数将City
转换为CD_City
,反之亦然。所以我真的不确定我是否以最佳方式完成了它。
另外,您会推荐哪种转换方法呢?
(FYI,我正在使用MagicalRecord作为Core Data助手)