如何使用NSFetchedResultsController将四个行分成一个部分?

时间:2014-01-10 10:33:34

标签: ios uitableview core-data nsfetchedresultscontroller

我是ios开发和核心数据的新手,但我仍然试图理解和管理这两件事的基础知识。现在我遇到了问题,我知道如何使用NSFetchedResultsController获取数据并将其显示在UITableView中,但假设我在数据库中有20 rows并且我需要显示{ {1}}我该怎么做?在构建four rows each in a section时,我没有得到sectionNameKeyPath应该给出的条件。有人可以帮我怎么做?。

1 个答案:

答案 0 :(得分:0)

设置sectionNameKeyPath会根据该关键路径的每个对象值拆分NSManagedObjects(即您的“行”)。假设您的对象是具有citystate属性的位置,例如

@interface Location : NSManagedObject
@property (nonatomic, retain) NSString *city;
@property (nonatomic, retain) NSString *state;
@end

如果您将sectionNameKeyPath设置为state,您的表格视图最多可拆分为50个部分。状态为@"California"的所有城市都会被归为@"California"部分,依此类推。

如果你想将你的20个对象分成四组,那么你的对象需要有一个属性,其中5个对象具有该属性的一个值,5个对象具有第二个值,另外5个对象具有第三个值,最后5个对象有第四个值。例如,您可以创建sectionName属性:

@interface MyManagedObject : NSManagedObject
@property (nonatomic, retain) NSString *sectionName;  // A, B, C, and D
@end

并将5个对象的sectionName设置为@"A",将另外5个设置为@"B",依此类推......