我已经为我的一个实体添加了一个新属性,核心数据已经迁移了它,并且正在很好地加载应用程序,没有显示不兼容的模型错误,但当使用新属性时,我会遇到选择器错误,我想既然还没有什么,我该如何获取它,这样如果没有数据,它只显示一个空字符串。
我试过
var string : String = "No value"
if let d : NSDate = lastTaken
{
let hours : NSNumber = hoursBetween!
let hoursAsSeconds : NSTimeInterval = hours.doubleValue * 3600
let time : NSDate = d.dateByAddingTimeInterval(hoursAsSeconds)
let formatter : NSDateFormatter = NSDateFormatter()
formatter.dateFormat = "MMM dd, HH:mm"
formatter.timeZone = NSTimeZone.defaultTimeZone()
string = formatter.stringFromDate(time)
}
return string
但是它仍然抛出选择器错误。lastTaken是新属性
全错误
***由于未捕获异常"NSInvalidArgumentException"而终止应用,原因:"-[M lastTake]:无法识别选择器发送到实例0x12dd11b30'
如果我编辑掉if部分,那么应用程序就会运行并显示无值字符串
看起来您更新了核心数据模型,但没有更新NSManagedObject
的自定义子类。现在您正在尝试访问lastTaken
,但该类没有具有该名称的属性。重新生成子类,或者手动将新属性添加到类中。