簡體   English   中英

如何將CoreData獲取結果放入(多維)數組中?

[英]How to get CoreData fetch results into (multidimensional) arrays?

我想將數據從coredata中的多行獲取到多維數組中,以便我可以遍歷它們以在日歷中創建事件。 但是,從對象的角度來看,似乎不可能或不建議使用真正的多維數組,因此我為要用於事件屬性(標題,注釋,一天中的時間)的每列數據創建了一個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 ];
}

這是正確的方法嗎?

謝謝

我強烈建議不要追求這種設計模式。 通過創建多維或多維數組,您的內存變得混亂,而這些數據無論如何都存儲在核心數據持久性存儲中。 內存問題很可能。

最好使用某種datasource方案(我確信您從UITableView知道),然后根據需要檢索日歷中每個日期的數據。 使用fetchedResultsController可以很容易地通過NSIndexPath或其他適合您的日歷的方案來實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM