2014-01-10 31 views
1

我是新来的ios开发以及核心数据,但我仍试图理解和管理这两件事的基础知识。现在我遇到了问题,我知道如何使用NSFetchedResultsController获取数据并将它们显示在UITableView中,但是假设我在数据库中有20 rows,并且如果我需要显示four rows each in a section,我该如何做到这一点?在建设NSFetchedResultsController时,我没有得到sectionNameKeyPath应该给出的条件。有人能帮助我如何做到这一点?如何使用NSFetchedResultsController将四分之一行分成一个部分?

回答

0

设置sectionNameKeyPath将基于该关键路径的每个对象的值来拆分NSManagedObjects(即您的'行')。假设您的对象是属性为citystate的位置,例如

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

如果设置sectionNameKeyPathstate,你的表视图将被分成达50节。所有状态为@"California"的城市将被分组为@"California"部分,依此类推。

如果您希望将20个对象分成4组,则对象需要有一个属性,其中5个对象具有该属性的一个值,5个对象具有第二个值,另外5个对象具有第三个值,最后5个对象有第四个值。回答

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

和5 sectionName对象设置为@"A",另外5到@"B",等等...

+0

感谢:例如,你可以创建一个sectionName属性。但是,你能帮助我如何做到这一点,我有日期专栏,并需要为每个月的每周创建部分。所以在我的表格视图中,我应该看到每个部分包含一周明智的条目。我问这个帮助,因为我是初学者,如果不是代码atleast给我想法我该怎么做。 – user3131304

+0

一种方法是为你的NSManagedObject子类创建一个名为'formattedWeek'的'NSString'属性。当你设置一个对象的日期时,你可以计算出该日期的哪个星期在,然后设置formattedWeek的值(例如,如果日期是1/10/14,你应该将'formattedWeek'设置为'@“1/5/14 - 1/11/14“'你可以查看'NSCalendar'来帮助计算。对于更复杂的解决方案,请查看以下其他答案:[1](http://stackoverflow.com/a/ 4420697/2880276)[2](http://stackoverflow.com/a/1235194/2880276)[3](http://stackoverflow.com/a/7870345/2880276) –

相关问题