2013-03-22 2 views
-1

У меня есть метод, который получает данные от сервера для использования в табличной проблеме, заключается в том, что когда данные извлекаются, если есть 3 элемента, уже находящихся в массиве, а затем после вызова метода они становятся 5, и мы перезагружаем данные, тогда делает продублируйте записейОбновить данные в таблицеView после вызова метода

 [self saveData]; 
     [self setUpData]; 
     [tableView reloadData]; 


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


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


appDelegate = (MultipleDetailViewsWithNavigatorAppDelegate *)[[UIApplication sharedApplication] delegate]; 

int count=[resultArray count]; 

NSLog(@"resultArry Row Counts is %d",count); 

return [resultArray count]; 

    } 

    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 

    return 70.00; 
     } 


     - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 


    static NSString *CustomCellIdentifier = @"CustomCellIdentifier"; 

     CustomCellF *cell = (CustomCellF *)[tableView 

               dequeueReusableCellWithIdentifier: CustomCellIdentifier]; 

    if (cell == nil) 
     { 


    NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CustomCellF" 
               owner:self options:nil]; 
    for(id oneObject in nib) 
     if ([oneObject isKindOfClass:[CustomCellF class]]) 
      cell = (CustomCellF *)oneObject; 
    cell.selectionStyle=UITableViewCellSelectionStyleNone; 

    } 


appDelegate = (MultipleDetailViewsWithNavigatorAppDelegate *)[[UIApplication sharedApplication] delegate]; 
FeedbackData *theCellData = [resultArray objectAtIndex:indexPath.row]; 



cell.theTitle.text =theCellData.user_Feedback; 



NSString*type=theCellData.user_Rating; 


if ([type isEqualToString:@"One Star"]) { 

    cell.theCellImage1.image=[UIImage imageNamed:@"starblue.png"]; 
    cell.theCellImage2.image=[UIImage imageNamed:@"stargray.png"]; 
    cell.theCellImage3.image=[UIImage imageNamed:@"stargray.png"]; 
    cell.theCellImage4.image=[UIImage imageNamed:@"stargray.png"]; 
    cell.theCellImage5.image=[UIImage imageNamed:@"stargray.png"]; 



} 


else if ([type isEqualToString:@"Two Stars"]) { 



    cell.theCellImage1.image=[UIImage imageNamed:@"starblue.png"]; 
    cell.theCellImage2.image=[UIImage imageNamed:@"starblue.png"]; 
    cell.theCellImage3.image=[UIImage imageNamed:@"stargray.png"]; 
    cell.theCellImage4.image=[UIImage imageNamed:@"stargray.png"]; 
    cell.theCellImage5.image=[UIImage imageNamed:@"stargray.png"]; 


} 

else if ([type isEqualToString:@"Three Stars"]) { 



    cell.theCellImage1.image=[UIImage imageNamed:@"starblue.png"]; 
    cell.theCellImage2.image=[UIImage imageNamed:@"starblue.png"]; 
    cell.theCellImage3.image=[UIImage imageNamed:@"starblue.png"]; 
    cell.theCellImage4.image=[UIImage imageNamed:@"stargray.png"]; 
    cell.theCellImage5.image=[UIImage imageNamed:@"stargray.png"]; 



} 



else if ([type isEqualToString:@"Four Stars"]) { 



    cell.theCellImage1.image=[UIImage imageNamed:@"starblue.png"]; 
    cell.theCellImage2.image=[UIImage imageNamed:@"starblue.png"]; 
      cell.theCellImage3.image=[UIImage imageNamed:@"starblue.png"]; 
    cell.theCellImage4.image=[UIImage imageNamed:@"starblue.png"]; 
    cell.theCellImage5.image=[UIImage imageNamed:@"stargray.png"]; 


} 


else { 


    cell.theCellImage1.image=[UIImage imageNamed:@"starblue.png"]; 
    cell.theCellImage2.image=[UIImage imageNamed:@"starblue.png"]; 
    cell.theCellImage3.image=[UIImage imageNamed:@"starblue.png"]; 
    cell.theCellImage4.image=[UIImage imageNamed:@"starblue.png"]; 
    cell.theCellImage5.image=[UIImage imageNamed:@"starblue.png"]; 



} 








return cell; 



    } 
+0

Что вы хотите? Удалить дубликат? – Vishal

+0

показать нам еще код – Dilip

+0

, если данные дублируются, что означает, что вы не освобождаете модель (массив) –

ответ

0

Как при вызове методов (setUpData) вы получаете те же данные дважды или новые данные добавляются в него.

Для этого вам необходимо удалить все старые данные и использовать новый набор данных, для этого вам нужно удалить/удалить все данные из массива и добавить в него новые объекты.

в методе (при использовании ARC)

-(void) setUpData{ 
    if(yourArray!=nil){ 
     yourArray=nil; 
     yourArray=[NSMutableArray new]; 
     //fill data again here 
    } 
} 
0

если вы хотите пополнить свой массив первым сделать их ноль, чтобы избежать того, что вы столкнулись прямо сейчас ..

if(dataArray!=nil){ 
dataArray=nil; 
dataArray=[[NSMutableData alloc]init]; 
} 
0

если вы хотите пополнить свой массив, то первое, что нужно сделать пустым.

 if(resultArray.count >0) 
    { 
       [resultArray removeAllObjects]; 
     } 

а затем пополнить массив.

0

первый релиз ваш массив:

[dataArray release]; 

или если вы используете Arc затем

[dataArray removeAllObjects]; 

затем проверить и заполнить снова

if(dataArray!=nil){ 
    dataArray=nil; 
    dataArray=[[NSMutableData alloc]init]; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^