核心数据仅在iOS 8上获取崩溃

时间:2017-01-09 10:04:17

标签: core-data ios8 swift3

我在项目中使用核心数据,并且在iOS 8上的fetch ...中断,但在任何其他iOS版本上都没有。我得到的错误是:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'keypath myId not found in entity <NSSQLEntity Entity id=1>'

我根本不理解这一点,myId一直存在,并且适用于iOS 9和10.我已经尝试删除应用并重新安装,但是徒劳无功。它发生在模拟器和设备上。

这是我执行fetch的代码

static func fetch(_ sortDescriptors: [NSSortDescriptor]?, predicate: NSPredicate?, entityName: String) -> [NSManagedObject] {

    let managedObjectContext = (UIApplication.shared.delegate as! AppDelegate).managedObjectContext

    let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: entityName)
    fetchRequest.sortDescriptors = sortDescriptors
    fetchRequest.predicate = predicate
    var fetchedObjects = [NSManagedObject]()
    do {
        fetchedObjects = try managedObjectContext.fetch(fetchRequest) as! [NSManagedObject]
    } catch {
        log.error("error")
    }
    return fetchedObjects
}

它在do - 语句内部中断并且不会抛出错误。在iOS 9.0+上它也不会抛出任何错误。代码是使用Swift 3编写的。

0 个答案:

没有答案