2011-12-23 6 views
1

coredata의 여러 행에서 다차원 배열로 데이터를 가져 와서 일정에 이벤트를 생성하기 위해 반복 할 수 있습니다. 그러나 객체 관점에서는 진정한 다차원 배열을 가질 수 없기 때문에 이벤트 속성 (제목, 메모, 시간)에 사용할 데이터 열당 하나의 NSMutableArray를 만들었습니다.CoreData에서 결과를 (다차원) 배열로 가져 오는 방법은 무엇입니까?

그러나 각 열의 모든 값을 자체 NSMutableArray에 어떻게 할당합니까? 또는 NSDictionary를 사용하여 값을 유지해야합니까? 여기

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를 통해 그 내가해야 루프를 추측거야하지만 난 방법을 잘 모르겠어요 :

여기에 내 꽤 표준 CoreData에서 가져올 수 있습니다.

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

올바른 방법인가요?

감사

답변

1
난 강력이 디자인 패턴을 추구하지 조언

. 다중 또는 다차원 배열을 작성하면 핵심 데이터 영구 저장소에 저장된 데이터로 메모리가 혼란 스럽습니다. 메모리 문제가 발생할 가능성이 있습니다.

어떤 종류의 datasource 구성표를 사용하는 것이 훨씬 편할 것입니다. datasource 구성표는 UITableView에서 알 수 있으며 필요에 따라 일정에있는 각 날짜의 데이터를 검색 할 수 있습니다. fetchedResultsController을 사용하면 NSIndexPath 또는 캘린더에 적합한 다른 구성표로 쉽게 달성 할 수 있습니다.

관련 문제