coredata の複数の行から多次元配列にデータを取得して、それらをループしてカレンダーにイベントを作成したいと考えています。ただし、オブジェクトの観点からは真の多次元配列を持つことは不可能または推奨されないように思われるため、イベント属性 (タイトル、メモ、時刻) に使用するデータの列ごとに 1 つの NSMutableArray を作成しました。
しかし、各列のすべての値を独自の NSMutableArray に割り当てるにはどうすればよいでしょうか? または、値を保持するために NSDictionary を使用する必要がありますか?
これは、かなり標準的な CoreData からのフェッチです。
MyAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"My_List"
inManagedObjectContext:context];
[fetchRequest setEntity:entityDescription];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"my_list_name" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[fetchRequest setFetchBatchSize:20];
[sortDescriptors release];
[sortDescriptor release];
NSFetchedResultsController *fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:context
sectionNameKeyPath:nil
cacheName:@"my_list.cache"];
fetchedResultsController.delegate = self;
NSError *error;
BOOL success = [fetchedResultsController performFetch:&error];
if (!success) {
//Handle the error
}
self.resultsController = fetchedResultsController;
NSArray *fetchedObjects = [fetchedResultsController fetchedObjects];
ここでは、配列ごとに NSManagedObject をループする必要があると推測していますが、その方法はわかりません。
for (NSManagedObject *list in context)
{
[ reminderTitleMutableArray addObject:my_list_List.my_list_name ];
[ reminderTitleMutableArray addObject:my_list_List.my_list_description ];
[ reminderTitleMutableArray addObject:my_list_List.my_list_tminus ];
}
これは正しい方法ですか?
ありがとう