私のUITableViewでは配列をデータソースとして使用します。これまではすべてうまく動作します。しかし、私は奇妙な問題がある、私は検索フィールドを使用し、私は後で再び削除するいくつかの文字を入力すると、基になる配列は突然空です。ここに私の問題を理解するために、関連するかもしれないコードスニペット、:私の.hで配列が突然空です
宣言私の.mコードで
@interface dictionaryViewController : UIViewController <UITableViewDelegate>{
...
...
NSMutableArray *cardArray;
}
...
@property (retain) NSMutableArray *cardArray;
...
使用法:
@synthesize cardArray;
...
- (void)viewDidLoad {
[super viewDidLoad];
self.cardArray = [[NSMutableArray alloc] initWithObjects:nil];
...
}
は、私がデータを持つ配列を移入します私のSQLデータベースから:
[self.cardArray addObject:[NSString stringWithFormat:@"%@ - %@", aQuestion, anAnswer]];
そして、コード内では、cellForRow meth OD:私は、ログに
[self.cardArray removeAllObjects];
self.cardArray=nil;
:終わり
- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
...
thisCardIndex = [self.cardArray indexOfObject:cellValue];
...
}
私はこの(私が代わりにremoveObjectsを使用し、なぜ私は実際に、解放コマンドを使用して他のいくつかの問題を持っていた)のように、それを解放エラーは表示されません。しかし、デバッガは、コードがSIGABRTでクラッシュすることを示し、ブレークポイントを設定すると、原因が空のcardArrayであることがわかります。
前もってサポートいただきありがとうございます。
はロジックが間違ってここにsomewhere..postウル全体.mファイルを起こっている... –
とは、メソッドは '[self.cardArray removeAllObjects]。 self.cardArray = nil; '?おそらく、その方法の詳細を投稿する必要があります。リリースコマンドに問題がある場合は、赤い旗が必要です。 'removeAllObjects'を呼び出す必要はありません。配列プロパティをnilに設定すると、すべてのオブジェクトにリリースが送信されます。したがって、 'removeAllObjects'を呼び出さなければならない場合は、別の問題をマスクしています。 – SSteve