2012-03-22 5 views
11

私の質問は、プログラムでNSIndexPathを設定する方法です。例えばNSIndexPathをプログラムで設定する

私は追加方法:

- (void)setDefaultValue{ 
tempIndexPath = [NSIndexPath indexPathForRow:0 inSection:1]; 
} 

のtableViewデリゲートで、私が比較したい-cellForRowAtIndexPath 2 indexPath

場合([indexPathのisEqual:tempIndexPath])...

しかし、この場合私のtempIndexPath = null(私は思う - これは自動リリースオブジェクトなので)

この場合、NSIndexPathを設定するにはどうすればよいですか?

ありがとうございました!これはあなたのオブジェクトの所有者を行います

[tempIndexPath retain]; 

ので、あなたが行っているときreleaseにそれを覚えている:

答えて

16

追加

- (void)setDefaultValue{ 
    tempIndexPath = [[NSIndexPath indexPathForRow:0 inSection:1] retain]; 
} 

保持しかし、あなたが将来的にリリースtemIndexPathを意識する必要があります。

編集:私は悪いオプションを削除しました。

+0

オブジェクトを保持するためにプロパティを作成することは、問題の過大評価と思う。これに加えて、メンバーがクラス外からアクセスできるようにするという(副)効果があります。これは望ましくないかもしれません。特に "temp"メンバーについて話していることを考慮してください。 – Saphrosit

+0

@Saphrosit、あなたは正しいです。回答が編集されました – LuisEspinoza

2

単にあなたがそれをインスタンス化した後retainを呼び出します。

1

あなたはそれを割り振り、後でリリースしなければなりません。自動解放されたオブジェクトを返す方法を定義する必要があります。

関連する問題