1

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 ];
}

これは正しい方法ですか?

ありがとう

4

1 に答える 1

1

この設計パターンを追求しないことを強くお勧めします。複数または多次元の配列を作成すると、コア データの永続ストアに格納されているデータでメモリが乱雑になります。メモリの問題が考えられます。

datasourcesから知っていると確信している何らかのスキームを使用しUITableView、必要に応じてカレンダーの各日付のデータを取得する方がはるかに優れています。aを使用すると、これはs またはカレンダーに適した他のスキームfetchedResultsControllerで簡単に実現できます。NSIndexPath

于 2011-12-24T18:08:17.883 に答える