以下のプロパティがある場合:
@property (nonatomic, retain) MyObject *theObject;
次に、新しい MyObject を作成したい場合は、次のようにします。
self.theObject = [[MyObject alloc] init];
また:
self.theObject = [[[MyObject alloc] init] autorelease];
以下のプロパティがある場合:
@property (nonatomic, retain) MyObject *theObject;
次に、新しい MyObject を作成したい場合は、次のようにします。
self.theObject = [[MyObject alloc] init];
また:
self.theObject = [[[MyObject alloc] init] autorelease];
必要に応じて - 2 番目。
生成されたセッターを使用している場合は、 でマークされていretain
ます。つまり、そのプロパティに格納された値は保持されるため、所有オブジェクトを渡す必要はありません。
保持されているため、dealloc で解放する必要があります。
自動解放を使用する必要があります。そうしないと、オブジェクトのリリース カウントが 2 つ ( からalloc
1 つ、セッターによって 1 つretain
) になるため、プロパティが設定解除されると、リークされます。
これは、強力なプロパティまたは保持されたプロパティとコピー プロパティにのみ適用されます。割り当てられたプロパティと弱いプロパティは、参照カウントを変更しないため、alloc-initted オブジェクトに割り当てる必要があります。