【发布时间】:2015-04-15 09:02:57
【问题描述】:
每当我尝试更新核心数据模型的值时,我都会收到此错误。 这是我的模型
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
}
我不断收到错误“由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'-[Habit setTrackingType:]: unrecognized selector sent to instance 0x7fdcbb002c90'”
在线 self.habit?.trackingType = index
过去 2 天我一直在努力解决这个问题。
编辑:
模型习惯通过以下方式初始化
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!;
}
返回的列表在应用程序的任何地方都使用。基本上我从列表中获取和项目并更新其属性,然后再次保存
【问题讨论】:
-
self.habit在哪里/如何初始化?也许你没有使用 designated initializerinit(entity: , insertIntoManagedObjectContext:)?比较stackoverflow.com/questions/23835525/…。 -
我已经浏览了所有这些链接,但它们都无济于事。我已经为您的 cmets 编辑了我的问题
-
我认为这与内存有关,但我无法迅速弄清楚
-
index是如何定义的? -
你是否自动生成了类?
标签: ios objective-c iphone swift core-data