0

これはばかげた質問かもしれませんが、私はiPhoneの開発に不慣れです。とにかくNSMutableArray、サーバーからロードされた情報を持っています。私はこの情報をテーブルに載せようとしています。私はこれを行う方法についていくつかのアイデアを探しましたが、これを行うために多くの人が使用しているように見えるこのコードに遭遇しました:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [myArray count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath           *)indexPath
  {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"];

if (!cell) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"UITableViewCell"] autorelease];
}

cell.textLabel.text = [myArray objectAtIndex:[indexPath row]];
NSLog(@"Cell is %@", [myArray objectAtIndex:indexPath.row]);
return cell;

}

今私の質問はifステートメントの中にありますそれは私に自動解放で2つのエラーを与えます:参照カウントモードでは利用できず利用できません、そしてアークは自動解放のメッセージ送信を禁止します、何か考えはありますか?助けてくれてありがとう

4

4 に答える 4

3

お持ちのコードは古いコードであり、手動参照カウント(MRC)でそのまま機能します。新しいプロジェクトでは、デフォルトで自動参照カウント(ARC)が使用されます。への呼び出しを削除するだけautoreleaseで大​​丈夫です。

cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"UITableViewCell"];
于 2013-03-20T01:00:00.587 に答える
3

自動参照カウントを使用しています。これは、(ほとんどの場合)メモリ管理を処理します。autorelease(およびretain、など)などの手動メモリ管理へのすべての参照を削除するreleaseと、アプリがビルドされます。以下でこれを使用してください:

if (!cell) {

    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"UITableViewCell"];

 }
于 2013-03-20T01:00:33.160 に答える
1

これは、NSMutableArray を tableView に追加するための簡単なチュートリアル リンクです

于 2013-03-20T03:25:23.820 に答える
1

これは、無料で入手できる Sensible TableView フレームワークを使用して簡単に行うこともできます。それらには ArrayOfObjectsSection と呼ばれるものがあり、そこに NSArray を渡すだけで、他の多くのものの中で自動的に表示されます (サーバーのフェッチを行うことを含む)。

于 2013-03-20T01:39:39.973 に答える