title: iOS app freezes without crashing
body: <p>My iOS app behaves normally for the initial few minutes, but after some 10 to 15 minutes of usage, the animations (e.g. view push animation and the UIAlertView animation) behave abnormally. They seem to animating faster than usual. After that, the app just freezes without crashing.  I have to force kill the app and restart it to use it again.</p>
  
  <p>When I paused the debugger, it stops on Thread#1 (probably the UI thread) and it shows the following assembly code line:</p>
  
  <p><img src="https://i.stack.imgur.com/MsOH5.png" alt="error"></p>
  
  <p>Note: I have checked my code and there is no long-running task performed on the main UI thread.</p>
  
  <p>What could be the cause? How can I use Instruments to debug these cases?</p>
  
  <p><b>Update:</b> <br/>Actually I have narrowed down it a little bit. 
  I have a table view made up of custom cells. These cells have 2 buttons each, which lead to two different forms, while didSelectRowAtIndexPath leads to a different view.
  When I keep going back and forth on those forms from the buttons, the app starts showing the aforementioned abnormal behaviours and freeze ultimately.</p>
  
  <p>(During this back and forth, Instrument's Leaks shows lots of leaks but they are from foundation library.)
  Note: It uses ARC</p>
  
  <p>Here is a code snippet:</p>
  
  <pre><code>//Class interface
  @interface tableViewController : UIViewController &lt;TableViewCellDelegate , NetworkManagerDelegate&gt; {
      IBOutlet UITextField *field1;
      NSMutableArray *tableData;
  
      UIAlertView *alertView;
      IBOutlet UIButton *backButton;
      NetworkManager *netMan;
      DetailsVC *detailsVC;
      AnotherDetailsVC *anotherDetailsVC;
  }
  ....
  ..
  @end
  
  
  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
      static NSString *CellIdentifier = @"cellId";
      SecurityViewCell *cell = (TableCellView *)[self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
      if (cell == nil) {
          cell = [[[NSBundle mainBundle] loadNibNamed:@"TableCellView" owner:self options:nil] objectAtIndex:0];
      } else {
          NSLog(@"Cell reused");
      }
      obj1 = [tableData objectAtIndex:indexPath.row];
      cell.nameLabel.text = obj1.name;
      cell.delegate = self;
      cell.index = indexPath.row;
  
      cell.avatar.image = [UIImage imageNamed:@"IconTableRow"]; // for case of no photo on cell
      [netMan lazyLoadPhotoNamed:obj1.logo onImageView:cell.avatar];
  
      [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
      cell.backgroundColor = [UIColor clearColor];
      return cell;
  }
  
  
  
  // TableViewCell button press action
  - (void) buttonPressed:(int)index {
      obj1 = [tableData objectAtIndex:index];
  
      if( obj1.isOfType1){
          detailsVC = [[DetailsVC alloc] init];
          detailsVC.delegate = self;
          [detailsVC setObjectOnForm:team1];
          [self.navigationController pushViewController:detailsVC animated:YES];
  } else {
      ...
      ...
  }
  
  // Back button of DetailsVC
  -(IBAction) backButtonPressed {
          [self.navigationController popViewControllerAnimated:YES];
  }
  </code></pre>