Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Exc\u错误\u访问NSManagedObjectContext(\u内部添加)\u处理对象_Ios_Swift_Core Data_Xcode8_Exc Bad Access - Fatal编程技术网

Ios Exc\u错误\u访问NSManagedObjectContext(\u内部添加)\u处理对象

Ios Exc\u错误\u访问NSManagedObjectContext(\u内部添加)\u处理对象,ios,swift,core-data,xcode8,exc-bad-access,Ios,Swift,Core Data,Xcode8,Exc Bad Access,我正在开发swift应用程序,其中包括核心数据和Alamofire。我几乎一天都在努力解决这个问题 下面是应用程序崩溃后的屏幕截图,它是随机发生的。我知道这些信息可能还不够,如果有人需要更多详细信息,请提及。至少指导我跟踪这个问题 编辑: 该方法重新加载tableview函数后,其主要崩溃 func reloadTable(){ print("reloadTable called") DispatchQueue.main.async { let appDel:A

我正在开发swift应用程序,其中包括核心数据和Alamofire。我几乎一天都在努力解决这个问题

下面是应用程序崩溃后的屏幕截图,它是随机发生的。我知道这些信息可能还不够,如果有人需要更多详细信息,请提及。至少指导我跟踪这个问题

编辑:

该方法重新加载tableview函数后,其主要崩溃

func reloadTable(){
    print("reloadTable called")
    DispatchQueue.main.async {
        let appDel:AppDelegate = (UIApplication.shared.delegate as! AppDelegate)
        let context:NSManagedObjectContext = appDel.managedObjectContext
        let request = NSFetchRequest < NSFetchRequestResult>(entityName: "Jars")
        request.returnsObjectsAsFaults = false;
        let sortDescriptor = NSSortDescriptor(key: "order", ascending: true)
        let sortDescriptors = [sortDescriptor]
        request.sortDescriptors = sortDescriptors
        self.navigationController!.view.backgroundColor = UIColor.white
        self.jarlist = NSArray()

        do{
            self.jarlist = try context.fetch(request) as NSArray
            print("Check 11")
        }catch{

        }
        self.ArrayPopulator("")
        print("Check 12")
        self.JarsTable.reloadData()
        print("Check 13")
    }
}
func重载表(){
打印(“已调用的重载表”)
DispatchQueue.main.async{
让appDel:AppDelegate=(UIApplication.shared.delegate为!AppDelegate)
let context:NSManagedObjectContext=appDel.managedObjectContext
let request=NSFetchRequest(entityName:“Jars”)
request.returnsObjectsAsFaults=false;
让sortDescriptor=NSSortDescriptor(键:“顺序”,升序:true)
让sortDescriptor=[sortDescriptor]
request.sortDescriptors=sortDescriptors
self.navigationController!.view.backgroundColor=UIColor.white
self.jarlist=NSArray()
做{
self.jarlist=try context.fetch(请求)作为NSArray
打印(“支票11”)
}抓住{
}
self.ArrayPopulator(“”)
打印(“支票12”)
self.JarsTable.reloadData()
打印(“支票13”)
}
}

因此,查看堆栈跟踪,看起来您正在线程2上使用托管上下文

不能在多个线程上使用
NSManagedObjectContext
,您必须为要在其上使用它的每个线程(队列)使用一个。只有在线程之间传递对象标识符才是安全的

您能否再次检查您要在
NSOperation
中处理的对象是否在您试图删除它们的同一操作队列中检索到

您将只希望将ID传递给操作,并使其从自己的托管对象上下文中重新水化它们


编辑:仔细查看这似乎是由CoreData管理的内部队列,因此这可能不是您的工作?

显示应用程序崩溃的代码。您可以设置异常断点。您的核心数据堆栈是什么样子的?您正在使用NSPersistentContainer吗?我没有使用NSPersistentContainer。