3

ある種の哲学的な質問。(保持されている)@propertyに定数文字列を割り当てるのは適切ですか?または、私はする必要がありself.string = [NSString stringWithString:@""]ます;

メモリリークはありますか?過剰リリースされた場合はどうなりますか?

これは定数文字列なので、NSStringオブジェクトと同じように動作しますか?

プロパティが(割り当て)の場合、それは実行ループの後で有効ではないことを意味しますか?

4

1 に答える 1

6

はい、大丈夫です。どちらの方法でも、定数文字列はプログラムにコンパイルされます([NSString stringWithString:@""]とにかく使用する必要があるため)。定数文字列は実際には保持/解放されませんが、重要なのはそのセマンティクスです。文字列を割り当てます(これは、関係する限り、正味+0のretainCountを持ちます。まだalloc編集していません。だからあなたはそれを所有していません)それの所有権を取得するプロパティに。プロパティが(assign)、の場合でも、定数文字列で機能する可能性がありますが、自動解放プールが空になった後は意味的に無効になります。

于 2011-08-25T18:42:40.237 に答える