[英]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.