2014-02-25 58 views
1

我正在關注Lynda.com iOS關於表視圖的教程。我們所做的演示應該創建一個包含兩個部分的表格視圖。這兩個部分的數據從控制器(它是委託人)的viewDidLoad方法中的plist文件導入,並且,如下所示,我還聲明應該有兩個部分,併爲每個部分分配一個標題。在tableView中聲明瞭兩個部分,但只出現一個部分

但是,當我在模擬器中運行它時,只有第一部分(標題'iOS課程')出現在屏幕上(我無法向下滾動)。沒有出現web_courses的部分。從下面的代碼中,你能解釋爲什麼web_courses的部分沒有出現。

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 2; 

} 

-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 
{ 
    if (section == 0){ 
     return @"iOS courses"; 
    }else { 
     return @"web courses"; 

    } 

} 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    if (section == 0){ 
     return courseDetails.count; 
    }else { 
     return webCourseDetails.count; 

    } 

} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    NSURL *url = [[NSBundle mainBundle] URLForResource:@"courses" withExtension:@"plist"]; 
    courseDetails = [NSDictionary dictionaryWithContentsOfURL:url]; 

    justCourseNames = courseDetails.allKeys; 

    NSURL *urlWeb = [[NSBundle mainBundle] URLForResource:@"courses_web" withExtension:@"plist"]; 
    webCourseDetails = [NSDictionary dictionaryWithContentsOfURL:urlWeb]; 
    webCourseNames = webCourseDetails.allKeys; 
} 

回答

0

它看起來像webCourseDetails.count回報0numberOfRowsInSection方法。這就是爲什麼它沒有出現。

它可能是webCourseDetails字典是nil。在numberOfRowsInSection中設置一個斷點來驗證。這意味着問題在於:

NSURL *urlWeb = [[NSBundle mainBundle] URLForResource:@"courses_web" 
             withExtension:@"plist"]; 

webCourseDetails = [NSDictionary dictionaryWithContentsOfURL:urlWeb]; 

而且字典沒有被初始化,例如因爲plist文件不在那裏。

+0

我按照你的建議設置了一個斷點,並且該函數'numberOfRowsInSection'中的局部變量'webCourseDetails'表示有11個鍵/值對。 – BrainLikeADullPencil

+0

在模擬器的底部,它顯示了一行的上半部分,視圖不讓我向下滾動以查看它是什麼,所以也許其他部分在那裏,但由於某種原因我無法滾動到它。 – BrainLikeADullPencil

+0

實際上在教程提供的代碼中發生了同樣的事情(當我在機器上運行它時),即使它在視頻中工作。 – BrainLikeADullPencil

相關問題