0

私はいくつかのコードを見ていますが、これがどのように機能するのか疑問に思っていました。あるクラスでは、次のようなものがあります。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *simpleCellIdentifier = @"SimpleCellIdentifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SimpleCellIdentifier"];
....
return cell
}

次に、別のクラスで、ストック UITableViewCells の同じスニペットが表示されます。がどうなるか気になっていた

static NSString *simpleCellIdentifier;

静的なので、プロジェクトの存続期間中割り当てられますよね? では、別の viewController のコードが実行されるとどうなるでしょうか? simpleCellIdentifier他のクラスで作成された古いものを使用するだけですか?ありがとう。

4

1 に答える 1

3

この場合simpleCellIdentifier、メソッド スコープ内にのみ存在します。したがってsimpleCellIdentifier、それらは異なるインスタンスであるため、さまざまなメソッドに好きなだけ存在できます。

クラススコープ内で変数を宣言するstaticと、そのクラスでその変数を読み書きするたびに同じインスタンスで作業します。

于 2012-07-06T20:47:23.927 に答える