2012-09-27 6 views
1

응용 프로그램에서 여러보기 내에서 데이터를 저장하고 검색하려고하는데, 지금은 데이터를 저장하고 AppDelegate 내에있는 한 해당 데이터를 검색 할 수 있지만 다른보기를 응용 프로그램에서 새로 저장된 데이터를 검색하여 표시하고 싶지만 다른보기에서 핵심 데이터에 액세스하는 방법이 확실하지 않습니다. 어떻게 구현할 수 있습니까?어떻게 여러보기에서 핵심 데이터에 액세스 할 수 있습니까?

// store the data 
AppDelegate *app = [UIApplication sharedApplication].delegate; 
STUDENT *std = (STUDENT *)[NSEntityDescription insertNewObjectForEntityForName:@"STUDENT" inManagedObjectContext:app.managedObjectContext]; 
[std setName:@"John"]; 
[std setNumber:[NSNumber numberWithInteger:1]]; 
[std setPlace:@"USA"]; 
[app.managedObjectContext save:nil]; 

// read the data 
NSFetchRequest *req = [[NSFetchRequest alloc]init]; 
[req setEntity:[NSEntityDescription entityForName:@"STUDENT" inManagedObjectContext:app.managedObjectContext]]; 
[req setPredicate:[NSPredicate predicateWithFormat:@"name == %@", @"John"]]; 
STUDENT *stud = [[app.managedObjectContext executeFetchRequest:req error:nil] lastObject]; 

NSLog(@"%@",stud); 

NSLog 당신이 무엇을 기대 출력

<STUDENT: 0x518b860> (entity: STUDENT; id: 0x518e0a0 <x-coredata://5A6AC621-11C1-4857-82BF-9BEEF258B171/STUDENT/p10> ; data: { 
    name = John; 
    number = 1; 
    place = USA; 
}) 

내 다른 뷰 컨트롤러 : 여기

AppDelegate.m, 나는 지금까지 무엇을 가지고 , 어디에서 데이터에 액세스하고 싶습니다,라는 이름의 FirstViewController.m/.h/.xib, 나는 꽤 목적 C.

답변

1

응용 위임에 새로운 종류의 싱글, 그래서 당신은 당신이 검색하는 그것을 원하는 방법을 호출 할 수 있습니다 거기에서

MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]; 

을 수행하는 모든보기에서 액세스 할 수 있어야합니다 데이터를 저장하고 저장할 수 있습니다.

코어 데이터 스택을 응용 프로그램을 통해 액세스 할 수 있도록 유지하는 방법에 대한 다양한 질문이 있습니다. here이 그 중 하나입니다. Daniel

+0

고마워, 그건 속임수 였어! :) – Odyss3us

1

appDelegate의 헤더를 가져와야합니다. 이를 사용하여 appDelegate의 관리 객체 컨텍스트에 액세스 할 수 있습니다. 해당 컨텍스트를 사용하여 가져와야하는 정보를 가져옵니다. 또한 엔티티의 클래스 표현 헤더를 가져와야합니다. 가져 오기 및 삽입 작업은 동일한 프로세스입니다. 당신은 또한 NSFetchedResultsController tableViews 등 당신을 도울 설명서를 확인하고 싶을 수도 있습니다.

관련 문제