2014-01-10 30 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) –

相關問題