2011-11-11 173 views
0

我有一个uitableview滚动时崩溃。滚动uitableview时崩溃

我试过了泄漏,并建立和分析,但无法解决这个问题。

提示以下错误:

*** -[CALayer retain]: message sent to deallocated instance 0xe192280 

下面是我运行的代码。

// Customize the appearance of table view cells. 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 


    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 


    if (cell == nil) { 

     cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"MyIdentifier"] autorelease]; 

     NSInteger row = [indexPath row]; 

     cellRect2 = CGRectMake(135, 10, 5, 20); 
     lblColon = [[UILabel alloc] initWithFrame: cellRect2]; 
     lblColon.font = font; 
     lblColon.backgroundColor = [UIColor clearColor]; 
     lblColon.textColor = [UIColor blackColor];   
     [cell.contentView addSubview: lblColon]; 
     lblColon.text = @":";   

     if (tableView == tblCompanyDetails) { 

      switch (indexPath.section) 
      { 

       case 0: 
       { 
        profileName = [appDelegate.arrCompanyProfile1 objectAtIndex:indexPath.row]; 

        NSLog(@"appDelegate.arrCompanyProfile1 ------> %@", appDelegate.arrCompanyProfile1); 

        if(row == 0) 
        { 

         cellRect1 = CGRectMake(10, 10, 130, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"Company Name";  

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         //NSString *str = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
         //NSLog(@"str--------%@", str); 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]]; 

         break; 

        } 

        if(row == 1) 
        { 

         cellRect1 = CGRectMake(10, 10, 130, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"Type of Company"; 

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         //NSLog(@"profileName.namelast--------%@", profileName); 
         //NSString *strLastName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]]; 

         break; 

        } 

        if(row == 2) 
        { 

         cellRect1 = CGRectMake(10, 10, 130, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"Main Contact Person"; 

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]]; 

         break; 

        } 
        if(row == 3) 
        { 

         cellRect1 = CGRectMake(10, 10, 130, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"Address"; 

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]]; 

         break; 

        } 
        if(row == 4) 
        { 

         cellRect1 = CGRectMake(10, 10, 130, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"City";  

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];     
         break; 

        } 

        if(row == 5) 
        { 

         cellRect1 = CGRectMake(10, 10, 100, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"State"; 

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]]; 

         break; 

        } 

        if(row == 6) 
        { 

         cellRect1 = CGRectMake(10, 10, 130, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"Postal/Zip Code"; 

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];     
         break; 

        } 
        if(row == 7) 
        { 

         cellRect1 = CGRectMake(10, 10, 130, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"Country"; 

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];     
         break; 

        } 
        if(row == 8) 
        { 

         cellRect1 = CGRectMake(10, 10, 130, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"Primary Phone No."; 

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];     
         break; 

        } 
        if(row == 9) 
        { 

         cellRect1 = CGRectMake(10, 10, 130, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"Mobile No."; 

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];     
         break; 

        }  
        if(row == 10) 
        { 

         cellRect1 = CGRectMake(10, 10, 130, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"Toll Free No."; 

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]]; 

         break; 

        } 

        if(row == 11) 
        { 

         cellRect1 = CGRectMake(10, 10, 100, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"Websites";  

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet : [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];     
         break; 

        } 

        if(row == 12) 
        { 

         cellRect1 = CGRectMake(10, 10, 130, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"Email Address"; 

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet : [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];     
         break; 

        }  

        if(row == 13) 
        { 

         cellRect1 = CGRectMake(10, 10, 130, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"Number of Employees"; 

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet : [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];     
         break; 

        }  

        if(row == 14) 
        { 

         cellRect1 = CGRectMake(10, 10, 130, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"Legal structure"; 

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet : [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]];     
         break; 

        }  


       } 

       case 1: 
       {   
        profileName = [appDelegate.arrCompanyProfile2 objectAtIndex:indexPath.row]; 


        if(row == 0) 
        { 

         cellRect1 = CGRectMake(10, 10, 100, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"Primary"; 

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]]; 

         break; 

        } 

        if(row == 1) 
        { 

         cellRect1 = CGRectMake(10, 10, 120, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"Secondary"; 

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         //NSLog(@"profileName section2 ----> %@", profileName); 
         //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]]; 

         break; 

        } 

        if(row == 2) 
        { 

         cellRect1 = CGRectMake(10, 10, 130, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"No of years in business"; 

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]]; 

         break; 

        } 

       } 

       case 2: 
       { 
        profileName = [appDelegate.arrCompanyProfile3 objectAtIndex:indexPath.row]; 

        if(row == 0) 
        { 

         cellRect1 = CGRectMake(10, 10, 130, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"Postal/Zip Code"; 

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]]; 

         break; 

        } 

        if(row == 1) 
        { 

         cellRect1 = CGRectMake(10, 10, 130, 20); 
         lblTitle = [[UILabel alloc] initWithFrame: cellRect1]; 
         //UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 
         lblTitle.font = font; 
         lblTitle.backgroundColor = [UIColor clearColor]; 
         lblTitle.textColor = [UIColor blackColor];   
         [cell.contentView addSubview: lblTitle]; 
         lblTitle.text = @"Coverage Area (miles)"; 

         cellRect3 = CGRectMake(145, 10, 180 ,20);     
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         //NSString *strFirstName = [profileName stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]]; 

         break; 

        } 
       } 

       case 3: 
       { 
        profileName = [appDelegate.arrCompanyProfile4 objectAtIndex:indexPath.row]; 

        if(row == 0) 
        { 


         lblColon.hidden = YES; 

         cellRect3 = CGRectMake(10, 10, 280, 40);      
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         //UIFont *font = [UIFont fontWithName:@"Arial-BoldMT" size:14]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]]; 
         break; 

        } 
       } 

       case 4: 
       { 
        profileName = [appDelegate.arrCompanyProfile5 objectAtIndex:indexPath.row]; 

        if(row == 0) 
        { 


         lblColon.hidden = YES; 

         cellRect3 = CGRectMake(10, 10, 100, 20);      
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         [lblResult setText:[NSString stringWithFormat: @"%@ ", profileName]]; 

         break; 

        } 
       } 

       case 5: 
       { 

        if(row == 0) 
        { 

         lblColon.hidden = YES; 

         cellRect3 = CGRectMake(10, 10, 100, 20);      
         lblResult = [[UILabel alloc] initWithFrame: cellRect3]; 
         lblResult.font = font; 
         lblResult.backgroundColor = [UIColor clearColor]; 
         lblResult.textColor = [UIColor blackColor];     
         [cell.contentView addSubview: lblResult]; 
         break; 

        } 
       } 

      } 

     } 

    } 




    return cell; 


} 
+1

岂不是容易得多对于你和少编码,如果你把你的值存储在一个数组/对象中?也许子类UITableViewCell? – Magnus

回答

0

你在哪里发布你正在分配的所有对象?它看起来像你试图一遍又一遍地分配相同的对象。

试试下面的办法:

UILabel *lblTitle = [[[UILabel alloc] initWithFrame: cellRect1] autorelease]; 
2

你实际上并没有任何再利用细胞,因为你是在细胞内完成所有部分==零代码bloack,更改代码这样的事情

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

    static NSString *CellIdentifier = @"Cell"; 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    UIFont *font = [UIFont fontWithName:@"Arial" size:13]; 


    if (cell == nil) { 

     cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"MyIdentifier"] autorelease]; 

     UILabel* lblColon = [[UILabel alloc] initWithFrame:CGRectMake(135, 10, 5, 20)]; 
     lblColon.font = font; 
     lblColon.backgroundColor = [UIColor clearColor]; 
     lblColon.textColor = [UIColor blackColor];   
     lblColon.text = @":";   
     [lblColon setTag:222]; 
     [cell.contentView addSubview: lblColon]; 
     [lblColon release]; 
    } 

    NSInteger row = [indexPath row]; 
    UILabel* lblToReuse = (UILabel*)[cell.contentView viewWithTag:222]; 


    if (tableView == tblCompanyDetails) { 
    //usual things you were doing earlier 
    } 

    return cell; 

} 

可能会帮助你一点。检查它是否仍然崩溃后用这个替换代码。

0

起初,再利用细胞在你的代码不能正常工作,因为你做的机制:

static NSString *CellIdentifier = @"Cell"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
// ... 
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"MyIdentifier"] autorelease]; 

您正在试图重复使用标识符“细胞”的细胞?但是当您创建单元格时,您可以使用reuseIdentifier“MyIdentifier”创建单元格。这不好。您应该创建细胞具有相同标识符:

cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease]; 

,拨动您的一部分外if (cell == nil) {声明单独配置电池(根据indexPath)的。在这个声明中,你应该只对你的单元进行全局配置。在这里配置这个tanle视图中所有单元格的相同内容。因为这个单元格将被重用于其他单元格。

当我们使用单元格的重用机制时,它试图找到带有标识符的单元格(调用[tableView dequeueReusableCellWithIdentifier:CellIdentifier])。如果它没有找到,比你创建电池原型具有相同标识符

if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:@"MyIdentifier"] autorelease]; 
} 

和代码的地方你对当前单元格的特定代码(在指定indexPath),这部分后