如何单击/遍历coreData实例

时间:2011-12-06 16:49:23

标签: ios uitableview core-data nsmanagedobjectcontext detailview

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

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

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

BTW:我用NSFetchedResultsController填充我的tableView。

2 个答案:

答案 0 :(得分:1)

我有完全相同的情况,我只是将一个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集合中的第一个或最后一个对象。
  3. 希望这会有所帮助。祝你好运

答案 1 :(得分:0)

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