每当我尝试更新核心数据模型的值时,都会收到此错误。这是我的模型:
import Foundation
import CoreData
@objc(Habit)
class Habit: NSManagedObject {
@NSManaged var name: String
@NSManaged var trackingType: NSNumber
}
这是我的tableViewCell代码。
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
if selected {
self.accessoryType = UITableViewCellAccessoryType.Checkmark
if self.habit? != nil {
self.habit?.trackingType = index
}
} else {
self.accessoryType = UITableViewCellAccessoryType.None
}
// Configure the view for the selected state
}
我一直遇到错误"Terminating app due to uncaught exception 'NSInvalidArgumentException',原因:'-[Habit setTrackingType:]: unrecognized selector sent to instance 0x7fdcbb002c90'"
在这行代码上: self.habit?.trackingType = index
我为此挣扎了两天,仍然无法解决。
编辑:
habit模型是以下方式初始化的:
func getHabits() -> [AnyObject]{
let entityDescription =
NSEntityDescription.entityForName("Habit",
inManagedObjectContext: managedObjectContext!)
let request = NSFetchRequest()
request.entity = entityDescription
//
// let pred = NSPredicate(format: "(trackingType != -1)")
// request.predicate = pred
var error: NSError?
var objects = managedObjectContext?.executeFetchRequest(request,
error: &error)
return objects!;
}
返回的列表在应用程序中被广泛使用。基本上,我从列表中获取一个项目,更新其属性,然后再次保存它。