使用Core Data和Firebase

时间:2016-03-07 20:12:38

标签: ios swift core-data memory firebase

问题: 我在我的应用程序中收到EXC_BAD_ACCESS错误,我认为这是因为我的闭包中的线程安全相关代码(self.sharedContext.performBlockAndWait)。但我无法弄清楚问题存在的原因。我将非常感谢您解决这个问题。

我的项目是在Xcode 7上的Swift 2中。

项目存储库: https://github.com/qwertyshan/HungryBaby

我的对象图如下所示:

class Recipe:
  var name: String
  var version: Double
  ...   // some more simple properties
  var method: [Method]   // object array
  var ingredients: [Ingredient]  // object array
  var nutrition: Nutrition // object

程序流程如下:

在LoginVC.swift中:

第101行:getDataOnLogin()从网络下载数据并将其解析为“食谱”词典数组 第148行:调用generateRecipe(字典)来创建配方对象图

  • generateRecipe()依次调用generateIngredients(),generateMethod()和generateNutrition()。
  • 这些方法中的每一个都在SharedContext上初始化它们的对象,并向调用的Recipe对象添加关系。 在LoginVC.swift的第154行发生崩溃,错误:“线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x2)”。

我知道这是一个内存错误,但我不知道为什么会被触发。有人可以看一下我的项目并提供一些有关此次崩溃原因的见解吗?

复制步骤:

  1. 运行应用程序工作区“HungryBaby.xcworkspace”
  2. 在用户界面上,点按“匿名登录”以下载食谱数据。
  3. 逐步执行断点,直到应用崩溃。
  4. 如果你花时间阅读这篇文章,那就谢天谢地了!

1 个答案:

答案 0 :(得分:0)

问题在于Core Data中的线程安全性。我正在回答这个问题,所以其他人不必花费更多的时间。