获取已删除实体的关系。 (崩溃)

时间:2016-11-19 18:07:48

标签: ios swift core-data nsmanagedobjectcontext

在应用启动时,我正在后台线程中删除旧的CoreData行,下面是我的代码。我的问题类似于City-Streets问题。所以,我有两个实体,街道和城市,我有一个关系城市< - >>街道作为一个城市有很多街道。

我在Crashlytics上遇到了罕见的崩溃,只是在下面的代码中说明了这一点。崩溃从未发生在我身上,我无法复制它。我不确定问题是否可能导致我们不应该获取已删除实体的关系。有人可以给我一些解释或重现问题的步骤吗? (我想确保这是原因)

context.performBlock{
    //fetch the entities I want to delete
    let streets = fetchEntitiesToDeleteInContext(context) 

    for street in streets{
        context.deleteObject(street)

        let city: City = street.city // NO crash here
        let cityName: String = city.name //crash here but I am sure that name is not nil
    }
}

1 个答案:

答案 0 :(得分:1)

您可以在删除街道之前获取城市对象

此外,您的代码没有任何意义。您正在for循环的范围内定义变量而不使用它们。 - 但你解释说这只是一段摘录。

请注意,行为是未定义,因此保证不会崩溃。无需担心之前的原因。