构建UITableView的最佳方式是将NSManagedObjects分组到NSDate属性月份定义的部分中。

我一直在努力几个小时才能达到看起来很简单的事情。构建UITableView的最佳方式是将NSManagedObjects分组到NSDate属性月份定义的部分中。

我有一个NSDate的属性的实体。

我的目标是建立一个UITableView每个列出的目的而将其分组为通过他们的NSDate属性的MM/YYYY定义段。

我发现这个苹果官方样片:http://developer.apple.com/library/ios/#samplecode/DateSectionTitles/Introduction/Intro.html

所以:

  • 我创建了一个新的瞬态可选属性 “sectionTitleMonth” 我的实体A
  • 我定义了新的动态属性(primitiveDate和primitiveSectionTitleMonth )并且像在官方示例中那样实现它们的setter和keyPathsForValuesAffectingSectionTitleMonth。

我决定将这个新的代码移动到一个类类别(A + nonGenerated),因为我不想一切 将每个I再生我的模型类的时间灰飞烟灭。

之后,我更新了我的表视图的委托,使

  • 它究竟是建立一个NSFetchedResultsController作为样本。它现在使用我的瞬态特性为sectionNameKeyPath
  • 它的部分相关的方法定义为官方样品中

2点让我怀疑,如果这个解决方案有:

1)我使用的是瞬态属性作为具有SQL Lite后端的sectionNameKeyPath。可以吗?我读过瞬态属性+ SQLLite不是好朋友,但不记得在哪种情况下,我在我的类类别A + nonGenerated中定义属性(primitiveDate和primitiveSectionTitleMonth)。可以吗?正如正式文档中所述,“你不能使用一个类别向类中添加额外的实例变量”。但这里的属性是动态的,我想,核心数据生成相关的实例变量时,它会生成一个所以它应该工作的罚款...但我还是有一点疑问:)

一切似乎很好地工作,但..这是一个很好的解决方案吗?我的意思是他们有更简单/更好的方式来实现我的目标?

请安慰我,或者给我一个更好的解决方案:O)

回答:

你的做法似乎罚款。在类别类文件或原始文件中使用访问器之间没有明显区别。您没有违反文档中的警告,因为您实际上并没有将实例变量添加到模型类中。

以上是 构建UITableView的最佳方式是将NSManagedObjects分组到NSDate属性月份定义的部分中。 的全部内容, 来源链接: utcz.com/qa/258199.html

回到顶部