我正在制作一个带有结果的分段表,但我很难找到定制的部分.
通常,只有一个属性可以排序,并用于sectionNameKeyPath:生成节.但我的排序属性是动态计算的,我似乎无法fetchedResultsController正确使用它...
更新:使用下面的jbrennan的建议,我真的很接近预期的功能.我添加了一个类别NSDate,返回"天前"数字; 把它放在这里给我基于这些数字的部分:
NSFetchedResultsController *aFetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:managedObjectContext
sectionNameKeyPath:@"myDateAttribute.daysAgo"
cacheName:@"Root"];
Run Code Online (Sandbox Code Playgroud)
这就是我被困住的地方:我不需要它们按"天前"排序,我需要根据实体中的其他属性通过一些计算对它们进行排序.所以我不能只调用那个自定义的Category方法,我需要调用带参数的方法,如下所示:
[myDateAttribute sortingRoutine:thisObject.value]
Run Code Online (Sandbox Code Playgroud)
或类似的东西.我希望这有一定程度的意义.非常感谢,如果你可以帮助:)
我有一个应用程序,其中包含核心数据中的一些位置,我想以接近用户位置的顺序向用户显示它们.我正在使用NSFetchedResultsController来为表视图提供位置.我考虑过创建一个虚拟访问器方法来返回位置与用户的距离,该方法将使用"全局"CoreLocationManager计算,但它会因原因而崩溃:
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'在实体<NSSQLEntity Location id = 4>中找不到keypath distanceFromCurrentLocation'
我还给用户提供了按字母顺序排序的选项,所以如果可能的话,如果我保留了NSFetchedResultsController,我会更喜欢它.
我该怎么办?
谢谢!