NSSortDescriptor崩溃 - 斯威夫特

时间:2014-10-10 15:48:06

标签: swift core-data crash

有人可以协助解决此核心数据排序问题吗?

这是我的代码的副本。

private func populateTableView() {
    let appDel: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
    let context: NSManagedObjectContext = appDel.managedObjectContext!
    let freq = NSFetchRequest(entityName: "List")

    let sortDescriptor = NSSortDescriptor(key: "date", ascending: true)
    let sortDescriptors = [sortDescriptor]
    freq.sortDescriptors = [sortDescriptors]

    if selectedGroup > 0 {
        let predicate:NSPredicate = NSPredicate(format: "group == \(selectedGroup)")
        freq.predicate = predicate
    }

    myList = context.executeFetchRequest(freq, error: nil)!
    tableView.reloadData()
}

如果没有这些线条,它的效果很好,只是未分类:

let sortDescriptor = NSSortDescriptor(key: "date", ascending: true)
let sortDescriptors = [sortDescriptor]
freq.sortDescriptors = [sortDescriptors]

然而,当我添加排序时,我收到以下错误:

  

2014-10-10 19:34:13.669 Test2 [2079:960565] - [_ TtCSs23_ContiguousArrayStorage000000013EE1A1C0 key]:无法识别的选择器发送到实例0x170240f90   2014-10-10 19:34:13.670 Test2 [2079:960565] *由于未捕获的异常终止应用程序' NSInvalidArgumentException',原因:' - [_ TtCSs23_ContiguousArrayStorage000000013EE1A1C0 key]:发送无法识别的选择器例如0x170240f90'   * 第一次抛出调用堆栈:   (0x187d5e084 0x1983440e4 0x187d65094 0x187d61e48 0x187c6708c 0x187a35c04 0x187a1b4e0 0x187b054f8 0x187a18254 0x187a17e60 0x187a1756c 0x187a16fe4 0x187adddc0 0x187ae5654 0x100550ee0 0x10055a95c 0x187ad8cb4 0x187a16c34 0x187a15744 0x100089fb8 0x1000897ac 0x1000897f4 0x18c4f7c20 0x18c5af508 0x18c4f7c20 0x18c562f94 0x18c562efc 0x18c4d49e8 0x187d16388 0x187d13314 0x187d136f4 0x187c41664 0x190d835a4 0x18c5464f8 0x10009a218 0x10009a258 0x1989b2a08)   libc ++ abi.dylib:以NSException类型的未捕获异常终止   (LLDB)

这是我的模特:

import UIKit
import CoreData

@objc(Model)
class Model: NSManagedObject {
    // properties feeding the attributes in our entity
    // must match the entity attributes
    @NSManaged var item: String
    @NSManaged var group: String
    @NSManaged var info: String
    @NSManaged var date: NSDate
    @NSManaged var image: NSData
}

谢谢。

1 个答案:

答案 0 :(得分:1)

固定。

原来只需要以下内容:

var sortDescriptor = NSSortDescriptor(key: "date", ascending: true)
freq.sortDescriptors = [sortDescriptor]