【发布时间】:2026-02-06 04:20:02
【问题描述】:
我开发了一款专注于健康和健身的应用,并使用 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)
}
}
有谁知道可能发生了什么,或者我该如何模拟这个问题,因为它只发生在客户端设备上?
感谢所有回复!
注意:对不起,我的英语不是我的母语。
* 已解决 *
问题发生在代码的另一部分以及这部分中的错误堆栈。 问题是客户的手机是 12 小时制而不是 24 小时制的。 日期中断是因为没有正确处理。 谢谢大家。
【问题讨论】: