【问题标题】:uncaught exception 'NSInvalidArgumentException', reason: '-[SubResultComponent setDate:]: unrecognized selector sent to instance 0x60000046b640'未捕获的异常“NSInvalidArgumentException”,原因:“-[SubResultComponent setDate:]:无法识别的选择器发送到实例 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 是什么的更多上下文等。

标签: swift core-data appdelegate nsexception


【解决方案1】:

@NSManaged 的行为类似于 dynamic 的目标 c 版本;这是对编译器的一个承诺,即对象在运行时将具有这些属性。它实际上并没有产生这些属性。为此,需要在核心数据模型文件中正确设置这些属性。使用编辑器的“创建 NSManagedObject 子类...”选项可以极大地帮助您保持代码和模型同步。

【讨论】:

    猜你喜欢
    • 2023-03-10
    • 2015-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多