CoreData在少数用户的情况下崩溃了

我开发了一款专注于健康和健身的应用,并使用Core Data来保存锻炼数据。 在少数用户(

  

致命异常:NSInvalidArgumentException,在不同上下文中的对象之间非法建立“ X”关系的尝试。

当我尝试保存培训计划时,会发生此错误。 如果我在设备上使用相同的用户帐户登录,则不会发生此错误。

这是我的保存功能:

func saveTraningProgramDB(trainingProgram:RetornoTreino) {
        let db = getcontext()
        for ficha in (trainingProgram.programa?.fichas)! {
            let fichasDB = FichasnovoDB(context: db)
            fichasDB.nome = ficha.nome
            ....
            for atividade in ficha.atividades! {
                for atividadePrograma in (trainingProgram.programa?.atividades)! {
                    if atividade.codigoatividade == String(atividadePrograma.codigoatividade ?? 0) {
                        let atividadesDB = AtividadesnovoDB(context: db)
                        ...
                        for serie in atividade.series! {
                            let seriesDB = SeriesnovoDB(context: db)
                            ...
                            atividadesDB.addToSeries(seriesDB)
                        }
                        for ajuste in atividade.ajustes! {
                            ...
                            atividadesDB.addToAjustes(ajustesDB)
                        }
                        fichasDB.addToAtividades(atividadesDB)
                    }
                }
            }
            db(fichasDB)
        }
        do {
            try db.save()
        } catch {
            db(error)
        }
    }

有人知道发生了什么吗,或者由于问题仅在客户端设备上发生,我该怎么做才能模拟问题?

感谢所有回复!

注意:很抱歉,我的英语不是我的母语。

*已解决*

该问题发生在代码的另一部分以及此部分中的错误堆栈中。 问题在于客户的手机是12h而非24h格式。 该日期已到期,因为未正确处理。 谢谢大家。

xiaoqingqiu22 回答:CoreData在少数用户的情况下崩溃了

看不到您的上下文是如何关联的,但是从那里我可以看到:

您在名为“ db”的上下文中创建了fichasDB,并添加了一个数组actividadesDB作为关系,但是该数组是在上下文“ bancoDeDados”中创建的。看起来不对。

除此之外,您还必须使用有关上下文的更多信息来扩展代码。

本文链接:https://www.f2er.com/3110468.html

大家都在问