私は以下のクラスを持っています。 setNameは、同じデータインスタンスに対して何度も呼び出すことができます。今質問は、_name = nilをしない場合です。新しい文字列(割り当てられたメモリ)を割り当てる前に、メモリリークが発生するでしょうか?私はあなたがARCを使用していると仮定して、あなたのコード内の新しい割り当てられたメモリを割り当てる前にvarをnilに設定しないと、メモリリークが起こるでしょうか?
// data.h
@interface data : NSObject
{
@private
NSString *_name;
}
@property (strong, nonatomic) NSString *name;
// data.m
@synthesize name = _name;
- (void)setName:(NSString *)name {
_name = nil; // <-- if don't do this, would it end up causing memory leak?
_name = [NSString alloc] initWithString:name;
}
注:現実世界では 'copy'だけを使用します。 – justin