2011-07-06 2 views
0

내 응용 프로그램에 통합 된 facebook API. 모든 벽 값을 배열에 저장하고 내 tableview NIB 파일에 표시하고 있습니다. 하지만 로그인 한 후 main.m에서 EXC_BAD_ACCESS 예외가 발생합니다.iphone에서 nib 파일로드 중 EXC_BAD_SIGNAL

int retVal = UIApplicationMain (argc, argv, nil, nil);

값을 추적 할 수 있습니다. 다음은 nib 파일을로드하는 코드입니다.

facebookData=[[[[NSArray alloc]initWithArray:result]retain]autorelease]; 
Fave *bController = [[[Fave alloc] initWithNibName:@"Fave" bundle:nil]autorelease]; 
[self.navigationController pushViewController:bController animated:YES]; 
[bController release]; 

여기서 facebookdata는 main.m 파일에 정의 된 배열입니다. 나는이 배열에 벽의 값을 저장하고 있는데 다음 Fave nib 파일에서 배열로부터 값을 보여주고있다. nib 파일을로드하는 중 왜이 오류가 발생합니까?

미리 감사

+0

더 많은 디버그 데이터를 추가하십시오. – uvesten

+0

@kay .. 질문 제목이 보이지 않아요. 논리를 이해하십시오. 내 이전 질문에 배열 init 문제가 점점. 이 스레드는 main.m 파일에 문제가 있습니다. –

+0

@uvesten, 나는이 문제가 Fave 클래스에서 발생하고 있다고 생각합니다. 내가 tablelist에 잘못되었을 수도 있지만 내가 실수 한 곳을 추측하지는 않습니다. –

답변

1

에 당신은 페이브보기 컨트롤러를 오토 릴리즈하고 다시 그것을 발표했다. 망가는 유지도 .. 그게 나쁜 autoreleasing 왜

Fave *bController = [[Fave alloc] initWithNibName:@"Fave" bundle:[NSBundle mainBundle]]; 
[self.navigationController pushViewController:bController animated:YES]; 
[bController release]; 

좋아하니 그렇게. 당신의 페이브 경우

facebookData=[[NSArray alloc]initWithArray:result]; 
Fave *bController = [[Fave alloc] initWithNibName:@"Fave" bundle:nil]; 
[self.navigationController pushViewController:bController animated:YES]; 
[bController release]; 

에만 [bController release]을 해제 할 수 있습니다 은 ... 당신이 facebookData 다음과 같은

+0

두 곳에서 변경했습니다. 그러나 여전히 같은 결과. 나는 이것을 콘솔 [2937 스레드 0x207로 전환]에서보고 있습니다. –

+0

fave 클래스에 tablelist (NSMutableArray * tableList)의 autorelease를 제공해야합니까? ? –

+0

감사합니다. 지금 일하고있다. 내 테이블 목록에 문제가있었습니다. 나는 dealloc 함수에서 그것을 해제한다. 이제 이것이 효과가 있습니다. –

1

마십시오 코드를 해제 필요가없는 미래에이

facebookData=[[NSArray alloc]initWithArray:result]; 

처럼 제공 컨트롤러에 메모리 누수가 없습니다 ...

그리고 배열을 유지하고 자동으로 사용하도록 설정하면 이는 잘못된 habbit입니다. 변경하십시오.

해피 코딩 ...

관련 문제