滚动uitableview时崩溃

时间:2011-11-11 10:06:31

标签: iphone uitableview iphone-sdk-3.0

我有一个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;


}

3 个答案:

答案 0 :(得分:2)

你实际上并没有重复使用任何单元格,因为你正在单元格内做所有部分== nil code 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;

}

可能对你有所帮助。检查它是否在用此替换代码后仍然崩溃。

答案 1 :(得分:0)

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

尝试以下方法:

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

答案 2 :(得分:0)

首先,重用单元格的机制在您的代码中不起作用,因为您执行:

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

您正在尝试重复使用标识符为“Cell”的单元格?但是当您创建单元格时,您可以使用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处)