0

私の2.0.1 phonegapアプリケーションでは、MainViewControllerにプロパティを追加しました

@property (nonatomic, readwrite, copy) NSString* test;

次に、phonegap が示唆するように、initWithNibName メソッドでプロパティを初期化します。

test = @"test";

これは問題なく動作しますが、代わりにプロパティを初期化するために次のことを行う人もいます。

test = [[NSString alloc] init];

@property はすでにメモリに割り当てられており、文字列として初期化されているので、すべての o.0 :S を実行する必要はないと思いましたか?

正しい方法は?

4

1 に答える 1

1

プロパティを適切に初期化するには、 を使用する必要がありますself.test = @"test"。の使用[[NSString alloc] init];はまったく無意味であり、誰もがそうすべき理由はありません。nilクラス型のメンバー変数 (および合成されたプロパティ) の既定値である の代わりに空の文字列が必要な場合は、単純に test を@"", に設定できますself.test = @""

@property はすでにメモリに割り当てられており、文字列として初期化されているので、すべての o.0 :S を実行する必要はないと思いましたか?

上で述べたように、プロパティによって合成されたものを含むメンバー変数はnil、この場合のデフォルト値に設定されます。

于 2012-11-13T15:50:36.837 に答える