【问题标题】:How to click/iterate through coreData instances如何单击/遍历 coreData 实例
【发布时间】:2012-01-14 06:34:25
【问题描述】:

这是我提出的关于how to next detailView like in Mail-App 的另一个问题。在那里,我想知道如何用数组解决这个问题。

现在我正在使用 coreData。我有一个名为 EntityAlphabet 的实体,它具有 - 例如 - 5 个属性。属性在这里无关紧要。 在 DetailView 中,我想迭代这个实体。 我该怎么做?

我想在 detailView 中“切换”实体。

顺便说一句:我正在使用 NSFetchedResultsController 填充我的 tableView。

【问题讨论】:

    标签: ios uitableview core-data nsmanagedobjectcontext detailview


    【解决方案1】:

    您可以以类似的方式使用 NSFetchedResultsController。尝试拨打- (id)objectAtIndexPath:(NSIndexPath *)indexPath。将您已在 - (IBAction)nextRow:(id) sender 中使用的 newIndexPath 传递给它。

    【讨论】:

      【解决方案2】:

      我有完全相同的情况,我只是将一个 managedObjects 数组传递给 detailView。然后,根据他们在详细视图上按下的向上/向下箭头,我从数组中选择适当的对象。因此,它将类似于您提供的链接中的解决方案。要获取对象数组,请在您的 didSelectRowForIndexPath: 方法中执行以下操作:

      // Assumes your detail view controller has a an NSArray ivar and property setup 
      detailViewController.alphabetObjects=[self.fetchedResultsController fetchedObjects];
      

      这个解决方案显然是低技术的,我实施它是因为我当时缺乏知识,即 2 年前。现在,我可以想出另外几种方法。

      1. 利用块回调到由 NSFetchedResultsController 管理的 tableView。因此,当您的 didSelectRowAtIndexPath 方法时,您将为 detailViewController 提供一个块,该块基本上采用 indexPath 并从您的 NSFetchedResultsController 返回新的 managedObject。
      2. 创建 tableViewController 实现的协议。通过协议的各种方法,您可以请求新对象以及更新 detailViewController UI。即查询它是否是 managedObjects 集中的第一个或最后一个对象。

      希望这会有所帮助。祝你好运

      【讨论】:

      • 谢谢您的回答。这听起来像我想做的方式 - 暂时的。对于一个协议,我没有足够的知识,这周也没有太多时间。你能告诉我如何将 coreData (EntityAlphabet) 中的所有数据保存到 nasarray 中吗?
      • 我已经用 [self.fetchedResultsController fetchedObjects] 试过了。在 NSLog 中,我正在获取对象,但在 detailViewController.abcArray = [self.fetchedResultsController fetchedObjects]; 中保存为数组是 empty。在详细视图中我设置了 ivar 和属性,找不到我的错误。再次感谢您的帮助。
      • 发布一些代码,包括显示您如何声明数组的 .h 文件。 Tis 是 cocoa 中的一种常见模式,所以如果你有带有 fetchedObjects 的对象然后不在数组中,那么你对数组做错了。把一些NSLogs放在相关的地方,做一些排查问题。
      猜你喜欢
      • 2018-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-03
      • 2011-06-06
      • 2010-12-19
      • 1970-01-01
      • 2016-06-07
      相关资源
      最近更新 更多