2012-03-29 8 views
0

UITableViewから削除しようとすると大きな問題が発生しています。UITableからのdeleteRowsAtIndexPathsのエラー

私は同じコードを別のビューで正常に実行しているので、それが私を狂ったようにしています。

唯一の違いは、他のビューでは、私の配列がプロパティにあることです。しかし、私はtmpArrayをプロパティに変更しようとしましたが、何も変わりませんでした。あなたはより多くの情報が必要な場合

*** Assertion failure in -[UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit_Sim/UIKit-1912.3/UITableView.m:1046

が今私をみましょう:

-(void)tableView:(UITableView*)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath { 
} 
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     [tmpArray removeObjectAtIndex:indexPath.row]; 
     [tbvPlaylist deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
    } 
} 

エラー:ここでは、コードと後にエラーがあります。

+0

です' tmpArray'それはのtableView 'でカウントがあります返す配列

[tbvPlaylist deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; 

tableView:numberOfRowsInSection:を返す必要があります呼び出しますか?テーブルビューは、あなたが行った変更を見て、それらがデータソースが提供する情報と一致することを確認します。 'deleteRowsAtIndexPaths:withRowAnimation:'を使用して1行を削除すると、データソースにこの変更が反映されることも期待されます。 –

+0

Hmmm、あなたが何を求めているのか理解していますが、 tmpArray.countをdeleteRowsAtIndexPaths:withRowAnimationが期待している数にバインドする方法を教えてください。 –

+0

しかし、とにかく答えは「はい」だと思います。 tmpArrayは、deleteRowsAtIndexPathの変更を反映するものです。 私のテスト:私のテーブルには10行あります。削除するとtmpArrayは9になり、deleteRowsAtIndexPath:withRowAnimation: –

答えて

3

tmpArrayは、行のカウントを提供している同じivarです。 numberOfRowsInSection:: `

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section; 
{ 
    return tmpArray.count; 
} 

また、現時点では、あなたは

numberOfRowsBeforeDelete - numberOfRowsBeingDeleted 
+0

を呼び出すとtableView:numberOfRowsInSectionは9になります。それは状況に応じて2つの異なる配列から来るこのtmpArrayを持っているので、問題だった、私はtableViewを変更するのを忘れた:numberOfRowsInSection:to:return tmpArray.count; –

関連する問題