2012-05-25 5 views
0

xcode 4.2를 사용하여 iPhone 앱을 제작하고 있습니다. Why does tableView dequeueReusableCellWithIdentifier:CellIdentifier return null?NSBundle mainBundle에서 sigabrt 오류가 발생합니까?

하지만 나를 어쨌든이 후 질문을 계속하자 :

나에게주는 라인 [[NSBundle mainBundle] loadNibNamed:@"WSCSessionCell" owner:nil options:nil];에 대해 뭔가있다 -

관련 질문 나는 이것이 내가 겪고있어 REAL 문제가 될 것 같아요 특정 방식으로 rootviewcontroller를 설정했을 때 SIGABRT 오류가 발생했습니다. 내가있는 UITableViewController를 상속 내 WSCSessionTable의 샘플 코드와 함께 시작하자 없음

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"WSCSessionCell"; 

    WSCSessionCell *cell = (WSCSessionCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (cell == nil) { 

     NSArray * topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"WSCSessionCell" owner:nil options:nil]; 

     for(id currentObject in topLevelObjects) 
     { 
      if([currentObject isKindOfClass:[UITableView class]]) 
      { 
       cell = (WSCSessionCell *) currentObject; 
       break; 
      } 
     } 

    } 
return cell; 
} 

시나리오 1 - 문제 - 아니 SIGABRT

을 위의 코드는 언제있는 navigationController의 rootviewcontrols WSCSessionTable 잘 작동합니다. 내 스토리 보드의 모양은 다음과 같습니다. Navigation Controller to WSCSessionTable

시나리오 2 - 문제는, 코드 내가 탐색 컨트롤러 및 WSCSessionTable 사이의 UIViewController를 넣을 때 SIGABRT

은 위의 코드는 SIGABRT 오류가 발생됩니다. 그런 다음 WSCSessionTable을 인스턴스화하기 위해 단추를 사용합니다. 여기 내 스토리 보드이 내가 nsbundle mainbundle있는 라인에 cellforrowatindexpath 함수에 SIGABRT 오류가 버튼

- (IBAction)goToSession:(id)sender 
{ 
    wscAppDelegate *appDelegate = (wscAppDelegate *)[[UIApplication sharedApplication] delegate]; 
    UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:[NSBundle mainBundle]]; 
    wscSessions *childView = [storyboard instantiateViewControllerWithIdentifier:@"sessionstable"]; 
// wscSessions *childView = [storyboard instantiateViewControllerWithIdentifier:@"sessionstable"]; 
    childView._arrData = appDelegate._arrSession; 
    childView._arrSpeaker = appDelegate._arrSpeaker; 
    childView.title = @"SEssions"; 
    [self.navigationController pushViewController:childView animated:YES]; 
    } 

에 대한 이벤트 핸들러

Activate WSCSession via button tap

설정입니다. 여기

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/dduvernet/Library/Application Support/iPhone Simulator/5.1/Applications/54EF04FD-E010-48BB-A0F4-EB0F12BF8D6A/gmmiphone.app> (loaded)' with name 'WSCSessionCell'' 
*** First throw call stack: 
(0x1da1022 0x2359cd6 0x1d49a48 0x1d499b9 0xa98638 0xa99eb7 0x3d9f 0x911c54 0x9123ce 0x8fdcbd 0x90c6f1 0x8b5d21 0x1da2e42 0x181679 0x18b579 0x1104f7 0x1123f6 0x111ad0 0x1d7599e 0x1d0c640 0x1cd84c6 0x1cd7d84 0x1cd7c9b 0x28f07d8 0x28f088a 0x877626 0x2138 0x2095 0x1) 
terminate called throwing an exception(gdb) 

 사람이 내가 아래 버튼을 탭을 통해 WSCSessiontable를 인스턴스화 할 수있는 방법을 알고 있나요 오류 출력은입니까? 문제의 Why does tableView dequeueReusableCellWithIdentifier:CellIdentifier return null?

+0

디버거 콘솔에 인쇄되는 전체 오류 메시지는 무엇입니까? –

+0

@ Adam - 오류 출력으로 내 질문을 업데이트했습니다. – John

+0

WSCSessionCell.xib가 프로젝트에 있으며 올바른 대상의 일부입니까? –

답변

1

일부는 당신이 대신있는 UITableViewCell의 jQuery과를 검색하는 것입니다 : -

관련 질문 나는 이것이 내가 겪고있어 REAL 문제가 될 것 같아요.

관련 문제