2010-03-07 2 views
1

내 프로젝트에 NSManagedObject 하위 클래스 인 ConfiguracaoDaApp 클래스가 있습니다. 나는 Xcode가 생성하는 기본 코드를 변경하지 않았습니다.executeFetchRequest 메소드의 리턴에서 비즈니스 객체를 검색하는 방법은 무엇입니까?

NSFetchRequest  *request = [[NSFetchRequest alloc] init]; 
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"ConfiguracaoDaApp" inManagedObjectContext:self.managedObjectContext]; 

    [request setEntity:entity]; 
    configDaApp = [[managedObjectContext executeFetchRequest:request error:&error] objectAtIndex:0]; 

문제는 다음과 같습니다

내가 내 응용 프로그램 위임에 내 appDidFinishLaunching 방법에 해당 유형의 인스턴스 변수를 선언, 나는 다음과 같이 데이터베이스에서 검색 객체에서 값의 할당하려고왔다 그 라인

[[managedObjectContext executeFetchRequest:request error:&error] objectAtIndex:0]; 

유형 ConfiguracaoDaApp의 객체를 반환하지 않습니다.

configDaApp = [[[managedObjectContext executeFetchRequest:request error:&error] objectAtIndex:0] entity]; 

는 그 다음 NSEntityDescriptor가 반환되고 문제가 동일하게 유지 :

나는 이것에 줄을 변경했습니다.

그래서, 내 질문은 : 어떻게 executeFetchRequest에서 실제 비즈니스 객체를 검색?

미리 감사드립니다.

것을 제외 : 그것은 초보자 질문입니다하지만 내 첫 아이폰의 애플 리케이션 경우 용서해.

난 그냥 무슨 일이 일어나고 있는지 알아
+0

그래서 어떤 종류의 개체가하는'[[managedObjectContext executeFetchRequest는 : 요청 오류 : & 오류] objectAtIndex : 0]'반환? –

+0

요청한 행에 (ConfiguracaoDaApp_ConfiguracaoDaApp_ *)가 리턴됩니다. 내 비즈니스 객체 클래스의 이름이 두 번 연결되었습니다. – reinaldoluckman

+0

문제는 다른 곳에 있습니다. 원래의 시도 ('executeFetchRequest : error :'의 결과를 "ConfiguracaoDaApp"객체의 배열로 취급)가 정확했습니다. – gerry3

답변

0

:

[[managedObjectContext executeFetchRequest:request error:&error] objectAtIndex:0]; 

는 오토 릴리즈 객체를 반환 내가 코드의 다른 부분에서 속성에 액세스하려고 할 때, 그 내용이 원래 ConfiguracaoDaApp 때문에 응용 프로그램의 메모리 쓰레기했다 개체가 autorelease 풀에 의해 해제되었습니다. 내 속성은 retain으로 선언되었지만 객체는 어쨌든 자동으로 변환됩니다. 그래서 저는 줄에 명시 적으로 유보를했습니다 :

configDaApp = [[[managedObjectContext executeFetchRequest:request error:&error] objectAtIndex:0] retain]; 

모든 것이 잘 작동합니다.

어쨌든 고맙습니다.

+0

dealloc에서의 릴리스를 잊지 마세요. :디 – reinaldoluckman

관련 문제