【问题标题】:swift 3 this class is not key value coding-compliant for the key startDateswift 3 这个类对于键 startDate 不是键值编码兼容的
【发布时间】:2017-08-07 11:56:46
【问题描述】:

我在用于返回分组事件的行/代码中遇到此错误。我读了很多这个错误,但只找到了解释这个关于按钮、文本标签或视图的错误的帖子。是语法错误还是什么?

class someManager: NSObject {

  func eventFrom(from startDate: NSDate, to endDate: NSDate) -> [Any] {

    let groupedEvents = NSMutableArray()  
      // some code

    let sortDescriptor = NSSortDescriptor.init(key: "startDate", ascending: true)
    return groupedEvents.sortedArray(using: [sortDescriptor]) // error here
  }
}

*/
@property(nonatomic, copy) NSDate *startDate;
// cmd + press on startDate
/*

完整的错误信息:

由于未捕获的异常“NSUnknownKeyException”而终止应用,原因:“[AppName.EventListController 0x170225340 valueForUndefinedKey:]:此类与键 startDate 的键值编码不兼容。”

所有事件列表控制器:

    class EventListController: NSObject {

    var AstartDate = Date()
    var Aevents = NSArray()

}

【问题讨论】:

  • 您确定groupedEvents 中的所有对象都属于该类吗?你能给我们那个类名和整个错误信息吗?
  • 编辑了我之前的帖子
  • NSMutableArray 元素或 someManager 没有任何“startDate”
  • 那么我应该将groupedEvents的类型更改为迄今为止的吗?阿道夫是如何提到它的。
  • @NiravD 如果我是对的,我是从 EKEvent 获得的。但是“startDate”作为变量我在整个项目中都有。即使在同一个“someManager”中,但在其他方法中。

标签: ios swift sorting date


【解决方案1】:

我认为您的可变数组包含 NSDate 类型的对象。如果要对该数组进行排序,可以应用 Array Swift 类中的 sort 函数

var groupEvent: [Date] = [ Date() ]

groupEvent.sort(by: { $0 < $1 })

groupEvent.sort()

【讨论】:

  • 我真的应该将类型更改为日期,因为我需要向它添加一些对象并检查它是否为空?
  • 你不需要检查数组是否为空。
猜你喜欢
  • 1970-01-01
  • 2016-11-13
  • 1970-01-01
  • 2015-05-08
  • 2015-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多