2013-07-08 52 views
1

我建立一個iPhone應用程序,我有99個記錄數組當我運行我的應用程序,然後cellForRowAtIndexPath方法,從0到7回indexPath.row這裏是低於錯誤indexPath.row IOS

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 

    return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 

    return [[accountParser accounts]count];//it return 99 records 
} 

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

     NSLog(@"Index : %d",indexPath.row);//this print index 0 to 7 only 


    } 

    return cell; 
} 
+0

把NSLog放在if語句之外,因爲現在它只記錄不重新使用單元格視圖的行。 – Anna

+1

TableView單元格是重用,這就是爲什麼只打印7。 – Jitendra

回答

5
我的代碼

當你顯示你的UITableView時,它只調用tableView:cellForRowAtIndexPath:用於可見的行。這意味着它只會在您將滾動視圖時調用其他行(在您的案例中爲8到99)。