title: NSMutable Array data source for UITableview cell
body: <pre><code>NSString *myMessage=messageField.text;
  [messageArray addObject:myMessage]];
  messageContentArray=[[NSMutableArray alloc] initWithArray:messageArray];
  
  [_tableView reloadData];
  </code></pre>
  
  <p>I have a UITableview and I used a NSMutable array of string as datasource then it works fine.  But now I want to add another string in this array on click of a button as above but as soon as I touch the button then application crash and give </p>
  
  <blockquote>
    <p>'NSInvalidArgumentException', reason: '-[NSCFString count]: unrecognized selector sent to instance 0x4e11cf0'</p>
  </blockquote>
  
  <p>How I can do this my table view is as bellow  please help me</p>
  
  <pre><code>- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
  
                   return [messageContentArray count];
               }
  #pragma mark -
  #pragma mark UITableView Delegaates
  static CGFloat padding = 20.0;
      - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
                   static NSString *CellIdentifier = @"messagesCellIdentifier";
  
                   SMMessageViewTableCell *cell = (SMMessageViewTableCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
  
                   if (cell == nil) {
                       cell = [[[SMMessageViewTableCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
                   }
                   NSString *usrid=[useridArray objectAtIndex:indexPath.row];
                  NSData *imgData1 = (NSData*)[[NSUserDefaults standardUserDefaults] objectForKey:@"lisnerImage"];
                   UIImage *img1 = [UIImage imageWithData: imgData1];
  
                  // CGRect imageFrame=CGRectMake(5,20,25,30);
                   //CGRect imageFrame1=CGRectMake(250,20,25,30);
                   //self.cellimage=[[[UIImageView alloc] initWithFrame:imageFrame] autorelease];
  //               self.cellimage1=[[[UIImageView alloc] initWithFrame:imageFrame1] autorelease];
                   if ([usrid caseInsensitiveCompare:friend_Id] == NSOrderedSame) {
  
                       [cell.usrImage setFrame:CGRectMake(250, 
                                                             20, 
                                                             25, 
                                                            30)];
                       cell.usrImage.image = userImage.image;
                      // self.cellimage1.image=userImage.image;
  //                    [cell.contentView addSubview:self.cellimage1];
                       NSString *messages1 = [messageContentArray objectAtIndex:indexPath.row];
                       CGSize  textSize = { 260.0, 10000.0 };
                       CGSize size = [messages1 sizeWithFont:[UIFont systemFontOfSize:13]
                                           constrainedToSize:textSize 
                                               lineBreakMode:UILineBreakModeWordWrap];
                       size.width += (padding/2);
                       cell.messageContentView.text = messages1;
                       cell.accessoryType = UITableViewCellAccessoryNone;
                       cell.userInteractionEnabled = NO;
                       UIImage *bgImage = nil;
                       bgImage = [[UIImage imageNamed:@"aqua.png"] stretchableImageWithLeftCapWidth:24  topCapHeight:15];
  
                       [cell.messageContentView setFrame:CGRectMake(45 , 
                                                                    20, 
                                                                    190, 
                                                                    size.height)];
  
                       [cell.bgImageView setFrame:CGRectMake(45, 
                                                             17, 
                                                             190, 
                                                             size.height+padding)];
                       cell.bgImageView.image = bgImage;
                   }else {
                       //self.cellimage.image=img1;
  //                   [cell.contentView addSubview:self.cellimage];
                       [cell.usrImage setFrame:CGRectMake(5, 
                                                          20, 
                                                          25, 
                                                          30)];
                       cell.usrImage.image = img1;
                           NSString *messages1 = [messageContentArray objectAtIndex:indexPath.row];
                       CGSize  textSize = { 260.0, 10000.0 };
                       CGSize size = [messages1 sizeWithFont:[UIFont systemFontOfSize:13]
                                           constrainedToSize:textSize 
                                               lineBreakMode:UILineBreakModeWordWrap];
                       size.width += (padding/2);
                       cell.messageContentView.text = messages1;
                       cell.accessoryType = UITableViewCellAccessoryNone;
                       cell.userInteractionEnabled = NO;
                       UIImage *bgImage = nil;
                       bgImage = [[UIImage imageNamed:@"orange.png"] stretchableImageWithLeftCapWidth:24  topCapHeight:15];
  
                       [cell.messageContentView setFrame:CGRectMake(45, 20, 190, size.height)];
  
                       [cell.bgImageView setFrame:CGRectMake( 45, 
                                                             17, 
                                                             190, 
                                                             size.height+padding)];
                                           cell.bgImageView.image = bgImage;
  
                   }
  
  
  
                   return cell;
               }
               - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
                               }
               -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
                  // return 65;
  
                   NSString *text = [messageContentArray objectAtIndex:[indexPath row]];
  
                   CGSize constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f);
  
                   CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];
  
                   CGFloat height = MAX(size.height+20, 44.0f);
  
                   return height + (CELL_CONTENT_MARGIN * 2);
               }
  </code></pre>