0

私はこの質問を回ってきました

そして、私自身のソリューションを実装しようとしています。どういうわけか、私はセクションを取得しません。行のみ。

この場合は 3 行... しかし、セクションはありません。少なくとも 2 つのセクションが必要です。2ヶ月。モデルを調べたところ、そこにあるので、これを知っています。

私のCore Data Modelには、多くの月 (Entity Month ) を含むエンティティYearがあります。また、月にも多くの日があります (Entity Day )

それぞれを個別に表す属性は、エンティティYearMonth、およびDayに対して、それぞれyear_、month_ および day_です。

私がやろうとしているのは、指定された Month、指定された Yearのすべての daysへのフェッチ リクエストで、セクションが Month を表し、Rows が Days を表すようにすることです。

誰かが私を助けることができますか?

編集:更新されたコード

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Day" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];


NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"day_" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

[fetchRequest setSortDescriptors:sortDescriptors];


[fetchRequest setFetchBatchSize:20];

NSFetchedResultsController *theFetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
                                    managedObjectContext:managedObjectContext
                                      sectionNameKeyPath:@"month.month_"
                                               cacheName:@"Root"];

私のモデルはこのように見えます、

ここに画像の説明を入力

どんな助けでも大歓迎です。

ありがとうございました!

ヌーノ

4

2 に答える 2

1
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setPredicate: [NSPredicate predicateWithFormat:@"";

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Day" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];

NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"Month.month_" ascending:NO];
NSSortDescriptor *sort2 = [[NSSortDescriptor alloc] initWithKey:@"day_" ascending:NO];
[fetchRequest setSortDescriptors:[NSArray arrayWithObjects:sort,sort2]];

[fetchRequest setFetchBatchSize:20];

NSFetchedResultsController *theFetchedResultsController =
[[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
                                    managedObjectContext:managedObjectContext sectionNameKeyPath:"month.month_"
                                               cacheName:@"Root"];
于 2012-08-31T21:58:06.153 に答える
0

一度にすべてを取得し、配列のディクショナリを使用して、返された後に並べ替えます。したがって、結果をループして各セクションの配列を作成し、各セクションのインデックスが付けられた辞書に配列を格納します。あなたの辞書は次のようになります

{ 
 {'January", "1,2,6,19,23,nil"},
 {'February", "2,7,18,19,28,nil"},
 {'March", "5,6,7,9,29,31,nil"},
 etc.
}

これを行うために必要な詳細の例を示すコードを含む優れたチュートリアルがicodeblogにあります。

于 2012-08-31T20:04:44.047 に答える