使用'索引0超出空数组的边界'错误重新加载视图崩溃

时间:2014-01-24 15:11:18

标签: ios objective-c indexing

我的应用程序基于使用MR的核心数据。

我有3个观看次数。这三种观点是 - 一个table view,我可以在其中选择一个实体,当点击它时打开second view所有亲戚数据,我有一个按钮打开third view用户可以修改数据。

我的问题是要打开second view我必须从表中传递行号以获得要显示的确切实体,这里一切都很好。

但是如果所选实体是表中的最后一个,并且用户修改了删除最后一行的一些数据(例如,如果更改了实体的category属性),那么当我回到我的应用程序崩溃时,因为该行我从first view传来的数字相对在我的数据库中不再存在。

我希望我解释得很清楚。我知道这个问题,但我不知道如何解决它。

3 个答案:

答案 0 :(得分:1)

  

我的问题是要打开第二个视图,我必须从表中传递行号以获得要显示的确切实体

您不应该将索引传递到表中,因为您知道它可以更改。

或者,您可以传递托管对象本身或其objectID(考虑到objectID价格昂贵)。

答案 1 :(得分:0)

在Xcode中,在左侧窗格中有一个断点部分(一个箭头形状的部分......或多或少)。打开那个部分。如果您点击该窗格左下角的+按钮,则可以添加例外断点。这将存储您的应用并突出显示崩溃的部分。从那里你可以很容易地解决你的问题:你只需要理解为什么你仍然试图访问该行,而不是对象的新索引。如果您在此时仍需要帮助,请发布您崩溃的代码部分以及该类的任何相关代码。

答案 2 :(得分:0)

我通过传递实体的标识符而不是行索引来解决我的问题。所以现在在详细视图中,我使用标识符而不是索引来获取我的实体。