ある種の哲学的な質問。(保持されている)@propertyに定数文字列を割り当てるのは適切ですか?または、私はする必要がありself.string = [NSString stringWithString:@""]
ます;
メモリリークはありますか?過剰リリースされた場合はどうなりますか?
これは定数文字列なので、NSStringオブジェクトと同じように動作しますか?
プロパティが(割り当て)の場合、それは実行ループの後で有効ではないことを意味しますか?
ある種の哲学的な質問。(保持されている)@propertyに定数文字列を割り当てるのは適切ですか?または、私はする必要がありself.string = [NSString stringWithString:@""]
ます;
メモリリークはありますか?過剰リリースされた場合はどうなりますか?
これは定数文字列なので、NSStringオブジェクトと同じように動作しますか?
プロパティが(割り当て)の場合、それは実行ループの後で有効ではないことを意味しますか?
はい、大丈夫です。どちらの方法でも、定数文字列はプログラムにコンパイルされます([NSString stringWithString:@""]
とにかく使用する必要があるため)。定数文字列は実際には保持/解放されませんが、重要なのはそのセマンティクスです。文字列を割り当てます(これは、関係する限り、正味+0のretainCountを持ちます。まだalloc
編集していません。だからあなたはそれを所有していません)それの所有権を取得するプロパティに。プロパティが(assign)
、の場合でも、定数文字列で機能する可能性がありますが、自動解放プールが空になった後は意味的に無効になります。