2014-02-25 68 views
2
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    NSInteger numberOfRows = 0; 
    if (self.tableView == tableView) 
    { 
     numberOfRows = self.allMovies.count; 
     NSLog(@"NRA:%d", self.allMovies.count); 
    } 
    else 
    { 
     [self filterPlayers]; 
     numberOfRows = self.filteredMovies.count; 
     NSLog(@"NRF:%d", self.filteredMovies.count); 
    } 

    return numberOfRows; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"SearchAndAddMovieCell"; 
    FFFSearchAndAddMovieCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) 
    { 
     NSLog(@"Cell is nil"); 
     cell = [[FFFSearchAndAddMovieCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
     if (cell == nil) 
      NSLog(@"Still NIL"); 
    } 

    Movie *movie; 
    if (self.tableView == tableView) 
    { 
     Movie *normalMovie = (Movie *)[self.allMovies objectAtIndex:indexPath.row]; 
     movie = normalMovie; 
     NSLog(@"normal:%@", movie); 
    } 
    else 
    { 
     Movie *filteredMovie = [self.filteredMovies objectAtIndex:indexPath.row]; 
     movie = filteredMovie; 
     NSLog(@"filter:%@", movie); 
    } 

    NSLog(@"1:%@|%@", movie.name, cell.movieName.text); 
    cell.movieName.text = movie.name; 
    NSLog(@"2:%@|%@", movie.name, cell.movieName.text); 
    cell.genre.text = movie.genre; 

這填充我的電影初始列表完美罰款。然而,當我在UISearchBar中輸入一個字符時,我已經瞭解了我的UITableViewController,但是我沒有得到任何結果,儘管在我的NSLog中看到了應該是/應該的結果。有任何想法嗎?爲什麼我在cellForRowAtIndexPath中的自定義UITableViewCell爲null?

這裏是LOG輸出...

2014-02-24 17:15:24.274 FantasyFeed[2367:60b] NRF:1 
2014-02-24 17:15:24.278 FantasyFeed[2367:60b] Cell is nil 
2014-02-24 17:15:24.281 FantasyFeed[2367:60b] filter:The Godfather 
2014-02-24 17:15:24.283 FantasyFeed[2367:60b] 1:The Godfather|(null) 
2014-02-24 17:15:24.286 FantasyFeed[2367:60b] 2:The Godfather|(null) 

爲什麼cell.movi​​eName.text不斷空嗎?在我在searchBar中輸入任何內容之前,LOG看起來像這樣...

2014-02-24 17:15:22.015 FantasyFeed[2367:60b] NRA:12 
2014-02-24 17:15:22.021 FantasyFeed[2367:60b] normal:The Godfather 
2014-02-24 17:15:22.023 FantasyFeed[2367:60b] 1:The Godfather|Label 
2014-02-24 17:15:22.024 FantasyFeed[2367:60b] 2:The Godfather|The Godfather 

這些是我很好奇的。正常運行有他們像底部2,但searchBar運行有他們作爲前2。

2014-02-24 17:15:24.283 FantasyFeed [2367:60b] 1:教父| (null)

2014-02-24 17:15:24.286 FantasyFeed [2367:60b] 2:The Godfather | (空)

2014年2月24日17:15:22.023 FantasyFeed [2367:60B] 1:教父| 標籤

2014-02-24 17:15:22.024 FantasyFeed [2367:60b] 2:The Godfather | 教父

回答

1

你的代碼表明你有兩個單獨的表。我懷疑他們都在你的故事板文件中,並且有一個原型單元格,其標識符爲SearchAndAddMovieCell,而另一個沒有。

+0

嗯。我有一個UITableViewController。在故事板中,它的標識符是SearchAndAddMovieCell。在上面我有一個搜索欄和搜索顯示控制器。我想那個確實有它自己的tableView ...但是在Storyboard中似乎沒有添加標識符的地方。應該有嗎?這是我失蹤的嗎? –

+0

我改變了 FFFSearchAndAddMovieCell * cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 至 FFFSearchAndAddMovieCell * cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 現在它的工作。我假設這應該沒問題,因爲結果表永遠不會擁有比self.tableView的原始完整表更多的單元格,對嗎? –

相關問題