2

많은 검색 후 stackoverflow 일부 솔루션을 사용하여 시도합니다 내 오류를 해결할 수있는 모든 대답을 찾지 못했습니다 : UIViewcontroller, 누가 이름 WorldViewController입니다. 이 UIViewcontroller 있음, 일부 UIView 초기화했습니다. 일부 UIView에서 WorldViewController에 의존하는 일부 변수를 수정하려고합니다. 그리고 내가 그 라인을 넣어 지금 :NSArrayM insertObject : atIndex :] : 개체가 없습니다 수 없습니다 '

WorldViewController * World = [[WorldViewController alloc] init]; 

가 나에게 제공합니다

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil' 

그래서, 어떻게 그것을 해결하기를? WorldViewController가 실행 중임을 알 수 있습니까? 그래서 그것을 고치는 방법?

편집 : 내의 ViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 

     World1 = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 480.0)]; 
     [World1 setBackgroundColor:[UIColor blackColor]]; 
     [self.view addSubview:World1]; 
     [World1 release]; 

     [self.view addSubview:ViewPig]; 
     [self.view addSubview:level1view]; 
     [self.view addSubview:level2view]; 
     [self.view addSubview:LoadView]; 
     [LoadView AnimPigLoadingWith:PigChargement]; 
     [LoadView AppearLabelLoading]; 
     [self.view addSubview:FondPauseGrise]; 
     [self.view addSubview:FondPause]; 
     [self.view addSubview:BoutonResume]; 
     [self.view addSubview:BoutonHome]; 
     [self performSelector:@selector(Chargement) withObject:nil afterDelay:0.5]; 
     [self performSelector:@selector(ViewAppears) withObject:nil afterDelay:5.5+2.5]; 
     [self performSelector:@selector(LabelPrevientDepartWithImage:) withObject:Trois afterDelay:9]; 
     [self performSelector:@selector(LabelPrevientDepartWithImage:) withObject:Deux afterDelay:10]; 
     [self performSelector:@selector(LabelPrevientDepartWithImage:) withObject:Un afterDelay:11]; 
     [self performSelector:@selector(LabelPrevientDepartWithImage:) withObject:Go afterDelay:12]; 
     [self performSelector:@selector(Lancement) withObject:nil afterDelay:(3)]; 
     [self performSelector:@selector(GestionMaps) withObject:nil afterDelay:(11+2)]; 
    } 
    return self; 
} 

감사의 초기화 방법!

+0

코드가 충분하지 않습니다. 우리는'WorldViewController'의 init 메소드 구현을 볼 필요가 있습니다. –

답변

8

질문에 충분한 코드를 기입하지 않았으므로 오류가 발생한 위치를 명확하게 보여줄 수 없습니다.

코드에서 "insertObject:atIndex:"이라고 표시된 행을 찾습니다. 삽입하려는 객체는 분명히 nil입니다.

이 줄을 찾을 수없는 경우 add a symbolic breakpoint on the symbol "[NSArray insertObject:atIndex:]" (관련 링크를 클릭하면 관련 질문과 밀접한 관련이있는 질문에 대한 답을 볼 수 있습니다). 충돌이 발생하기 바로 전에 문제를 해결할 수 있는지 확인하십시오.

+0

문제는, "insertObject : atIndex :"내 viewcontroller 또는 uiview 내 코드에서이 오류가 발생했을 때만 발생합니다. WorldViewController 추가 * World = [[WorldViewController alloc] init]; – user2057209

+0

기호식 중단 점을 추가하면 어떻게됩니까? 어디서 디버거를 멈 춥니 까? –

+0

다음 행 바로 앞에 : WorldViewController * World = [[WorldViewController alloc] init]; 이 줄은 실패합니다. 이유는 모르겠네요. – user2057209

11

나는 비슷한 문제가있었습니다. 내 실수는 초기 뷰 컨트롤러로로드하려고 시도한 뷰를 표시하지 않는 것이 었습니다. 내 생각 엔 배열에 추가 할 초기보기 컨트롤러가 없으므로 개체가 무효라는 것입니다. 나는 이것이 당신의 질문에 대답하는 것이 얼마나 좋은 지 모르지만 그것은 나를 위해 일했다.

enter image description here

관련 문제