Ios 核心数据对象删除错误

Ios 核心数据对象删除错误,ios,xcode,swift,xcode7,Ios,Xcode,Swift,Xcode7,我正在用TestFlight测试我的应用程序,我在不同的设备上看到两个相同的崩溃(iPhone 5S 8.3和iPhone 6 9.2) 这种崩溃在每个设备上只发生过一次,但我认为存在一些问题。当我打开“在项目中打开”时,我看不到在我的项目中发生崩溃的确切位置。正如我所看到的,当核心数据运行对象删除方法时会发生这种情况 我使用核心数据存储缓存,每次从服务器接收新数据时,我都会逐个清除所有核心数据实体,然后创建新的缓存。这是我清除缓存的功能。(此代码用于支持iOS 7) 您应该将下面的行作为可选的

我正在用TestFlight测试我的应用程序,我在不同的设备上看到两个相同的崩溃(iPhone 5S 8.3和iPhone 6 9.2)

这种崩溃在每个设备上只发生过一次,但我认为存在一些问题。当我打开“在项目中打开”时,我看不到在我的项目中发生崩溃的确切位置。正如我所看到的,当核心数据运行对象删除方法时会发生这种情况

我使用核心数据存储缓存,每次从服务器接收新数据时,我都会逐个清除所有核心数据实体,然后创建新的缓存。这是我清除缓存的功能。(此代码用于支持iOS 7)


您应该将下面的行作为可选的大小写
let results=try managedObjectContext.executeFetchRequest(fetchRequest)as![NSManagedObject]
to
让结果=尝试managedObjectContext.executeFetchRequest(fetchRequest)作为?[NSManagedObject]
然后检查结果是否包含引用。您在哪个线程上调用您的方法?你的并发类型是什么?@Afnan,如果我只是添加“?”我在构建之后会出错-你能给我看完整的代码块吗?你能在这里粘贴错误吗?@jcaron,我对线程非常陌生-所以我在let task=NSURLSession.sharedSession()中运行clearCache方法。dataTaskWithRequest(request){clearEventCache()..…dispatch_async(dispatch_get_main_queue(),{/*在此块中,我从服务器获取数据*/}}
func clearCache() {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let fetchRequest = NSFetchRequest()
fetchRequest.entity = NSEntityDescription.entityForName("CacheItems", inManagedObjectContext: managedObjectContext)
fetchRequest.includesPropertyValues = false

do {
    let results = try managedObjectContext.executeFetchRequest(fetchRequest) as! [NSManagedObject]
    for result in results {
        managedObjectContext.deleteObject(result)
    }

} catch {
    let nserror = error as NSError
    NSLog("CoreData erasing error - \(nserror), \(nserror.userInfo)")
}

// checking Cache items count
do {
    let fetchRequest = NSFetchRequest(entityName: "CacheItems")
    myCacheItems = try managedObjectContext.executeFetchRequest(fetchRequest) as! [CacheItemsClass]
} catch let error as NSError {
    print("\(error.localizedDescription)")
} }