未捕获的异常“NSInvalidArgumentException”,原因:“-[SubResultComponent setDate:]:无法识别的选择器发送到实例 0x60000046b640”
Posted
技术标签:
【中文标题】未捕获的异常“NSInvalidArgumentException”,原因:“-[SubResultComponent setDate:]:无法识别的选择器发送到实例 0x60000046b640”【英文标题】:uncaught exception 'NSInvalidArgumentException', reason: '-[SubResultComponent setDate:]: unrecognized selector sent to instance 0x60000046b640' 【发布时间】:2018-05-25 20:25:40 【问题描述】:我有一个错误,我不确定如何解决。
这里有错误
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SubResultComponent setDate:]: unrecognized selector sent to instance 0x60000046b640'
这是子结果组件
extension SubResultComponent
@nonobjc public class func fetchRequest() -> NSFetchRequest<SubResultComponent>
return NSFetchRequest<SubResultComponent>(entityName: "SubResultComponent")
@NSManaged public var date: String?
@NSManaged public var price: NSDecimalNumber?
这就是我所说的设定日期
func updateUI()
guard rateLog != nil else
return
// Update cell UI
self.dateLabel.text = rateLog?.date
self.priceLabel.text = numberFormatter.string(from: (rateLog?.price)!)
【问题讨论】:
我们能看到你调用 setDate 的代码吗?您是否手动生成核心数据代码,可能有些不同步? 我刚刚添加了我调用 setDate 的地方 不,那里没有给setDate
的电话。无论如何,最好能看到更多信息:崩溃日志、显示 SubResultComponent 是什么的更多上下文等。
【参考方案1】:
@NSManaged
的行为类似于 dynamic
的目标 c 版本;这是对编译器的一个承诺,即对象在运行时将具有这些属性。它实际上并没有产生这些属性。为此,需要在核心数据模型文件中正确设置这些属性。使用编辑器的“创建 NSManagedObject 子类...”选项可以极大地帮助您保持代码和模型同步。
【讨论】:
以上是关于未捕获的异常“NSInvalidArgumentException”,原因:“-[SubResultComponent setDate:]:无法识别的选择器发送到实例 0x60000046b640”的主要内容,如果未能解决你的问题,请参考以下文章