1

嗨,我的核心数据表有问题,类似于这样

+-----------------------+
|person                 |
+-----------------------+
|name                   |
|address                |
|birthDate              |
|gender                 |
+-----------------------+

在我的 FetchedResultController 中,我通过 GenderMaleFemale. 问题是我希望Male部分按其排序birthDate并且仅限制 5 行,在Female部分中我希望按其name和无限制对其进行排序。

我可以在一个 FetchedResultController 中完成,还是需要 2 个 FetchedResultController。或者如果有另一种方法可以让我知道。

谢谢

4

1 回答 1

2

NSFetchedResultController如果您定义自己的排序方法,则可以使用一个来完成。它会是这样的:

- (NSString *) sortBy
{ return (Male == self.gender ? self.birthDate : self.name); }

然后sortBy在控制器的配置中提供。请注意,正如@Martin R 所指出的,您可能无法使用 Objective-C 方法进行排序;如果不是,则定义另一个属性“sortOrder”并在对象创建时计算它。

至于极限,不确定,但也许可以在tableView:numberOfRowsInSection: 苹果给出这个例子:

- (NSInteger) tableView: (UITableView *) table 
  numberOfRowsInSection: (NSInteger) section
{
    id <NSFetchedResultsSectionInfo> sectionInfo = 
      [[<#Fetched results controller#> sections] objectAtIndex:section];
    return [sectionInfo numberOfObjects];
}

当该部分是“男性”部分时,也许您可​​以返回“3”。

于 2013-05-03T04:53:37.583 回答