-1

テーブルビューにデータベース情報を表示しようとしていますが、ビューの詳細情報は次のとおりです。

を作成しましたNSMutableArrayNSMutableArray *myArray = [[NSMutableArray alloc]init]; 次に、データベースからデータを入力しましたMyObj *obj = [[MyObj alloc]initWithName:idObj];

tableviewcellForRowAtIndexPath:メソッドで値を表示するとすべてうまくいきますが、メソッドで同じ配列を読み込もうとするとdidSelectRowAtIndexPath:、配列の値が「無効」になります。

宣言は次のNSMutableArrayとおりです。

@property (nonatomic, retain) NSMutableArray *myArray;

コードは次のとおりです。

.h ファイル

NSMutableArray *antrosArray; 

@property(nonatomic, retain) NSMutableArray *antrosArray; 

.m ファイル

@synthesize antrosArray; 

//filling the array: 

Antro *antro = [[Antro alloc]initWithName:idAntro nombre:aName]; 
[self.antrosArray addObject:antro];

私の問題は:

cellForRowAtIndexPath:tableView メソッドから配列にアクセスすると、すべて問題なく動作しますが、ユーザーがレコードを選択すると、didSelectRowAtIndexPath:メソッドで配列を読み取ろうとすると、配列内のすべての値が無効になります。

配列とオブジェクトがありますが、オブジェクトの値は空で、cellForRowAtIndexPath:メソッドは配列を消去しています。

4

2 に答える 2

3

myArray という 2 番目のローカル変数を定義しているようです。代わりにすべきことは

self.myArray = [[[NSMutableArray alloc] init] autorelease];

実際のところ、おそらく代わりに -initWithCapacity: を使用する必要がありますが、それは別の問題です。

編集:私の行方不明のオートリリースを指摘してくれてありがとうチャック:)

于 2009-11-09T17:59:43.990 に答える
0

retain定義時にも使用します。

于 2012-08-04T20:22:10.670 に答える