2010-05-18 2 views
1

다음 코드에서 [tableView reloadData]까지 NSLOG가 테이블보기 대리자 메서드에 설정되어 있고 그 중 아무 것도 호출되지 않을 때까지 모든 것이 작동한다고 결정했습니다. 나는 같은 reloadData를하는 다른 메소드를 가지고 있으며 완벽하게 작동한다. 내가 떨어져있는 유일한 차이점은 이것이 @catch 블록에 있다는 것입니다. 어쩌면 당신 똑똑한 사람은iphone reload tableView

@catch (NSException * e) {////chart is user genrated 
    logoView.image = nil; 
    NSInteger row = [picker selectedRowInComponent:0]; 
    NSString *selectedAircraft = [aircraft objectAtIndex:row]; 
    NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                 NSUserDomainMask, YES); 
    NSString *docsPath = [paths objectAtIndex:0]; 
    NSString *checklistPath = [[NSString alloc]initWithFormat:@"%@/%@.checklist",docsPath,selectedAircraft]; 
    NSString *dataString = [NSString stringWithContentsOfFile:checklistPath encoding: NSUTF8StringEncoding error:NULL]; 


    if ([dataString hasPrefix:@"\n"]) { 
     dataString = [dataString substringFromIndex:1]; 
    } 
    NSArray *tempArray = [dataString componentsSeparatedByString:@"\n"]; 

    NSDictionary *temporaryDictionary = [NSDictionary dictionaryWithObject: tempArray forKey:@"User Generated Checklist"]; 
    self.names = temporaryDictionary; 


    NSArray *tempArray2 = [NSArray arrayWithObject:@"01User Generated Checklist"]; 
    self.keys = tempArray2; 
    aircraftLabel.text = selectedAircraft; 
    checklistSelectPanel.hidden = YES; 
    [tableView reloadData]; 


} 
+0

이 아마 도움이되지 않습니다,하지만 당신은'대신 tableView''의 self.tableView'를 사용하여 시도 단지 호기심? – shosti

답변

1

"사용자가 생성 된 체크리스트" 및 "01User가 생성 된 체크리스트"

1

당신은 아마이 듣고 싶지 않아 ... 내가 잘못 뭔가를 볼 수 있지만 그것을 요구해야한다, 그래서 당신은 구체적으로 언급하지 않았다 - 당신이 실제로 설정 한 tableView 대리인?

+0

예. 테이블 뷰는 코드의 다른 모든 부분에서 잘 작동하고 다시로드됩니다. – Brodie

+0

충분히 좋습니다. catch 블록 외부의 다른 분기로 코드를 옮기는 것은 어떻습니까? 또는 테이블을 다시로드 할 수 있는지 여부를 확인하기 위해 불필요한 코드를 주석 처리하십시오. 아니면 다시로드하기 직전에 대리자를 수동으로 설정 하시겠습니까? –

+0

좀 더 조사한 후에는 "numberOf SectionsInTableView"및 "numberOfRowsInSection"대리자 메서드가 작동하지만 "cellForRowatIndexPath"는 그렇지 않습니다. 나는 그것의 상단에있는 nslog가 있고 그것도 걸리지 않는다 ... 코드의이 부분은 데이터가 꺼내지고있는 곳을 제외하고는 @try 블록에있는 섹션과 동일하다. – Brodie

1

동일한 문제가 발생했습니다. 마지막 날 동안 내 머리카락을 찢어 후, 나는 내 테이블을보기로 설정했다 (즉, 내보기 컨트롤러의보기 속성이 테이블로 설정 되었음), 그리고 분명히, 그것은 아니오입니다 깨달았다.

테이블이 보기 인 경우, 다른보기를 만들고, 사용자가 만든 새보기 안에 테이블을 배치합니다. Et voila, 당신의 탁자가 상쾌 해집니다.

+0

이것이 여기 해결책 인 지 모르겠지만 뷰 내부에 tableview가 있으면 인터페이스를 조정할 때 유연성이 훨씬 뛰어나다는 것을 알았습니다. –