, Поскольку у вас также есть одна ссылка на объект, это правильно.
от вопрос уже есть ответ здесь:
Objective-C: выделение объекта в рамках инициализации другого объекта (управление памятью) 3 ответаНовичок в OC, много лет C, C ++, C #, ум сейчас немного ошеломлен.
Дано:
// AnInterface.h
@interface AnInterface : NSObject
{
}
@property (retain) SomeObject* m_Object;
// AnInterface.m
#import "AnInterface.h"
@synthesize m_Object;
-init
{
self= [super init];
if(!self)
return (nil);
SomeObject* pObject= [[SomeObject alloc] init];
self.m_Object= pObject;
[pObject release];
}
Я уверен, что вышеизложенное верно. Однако почему бы просто не сделать:
self.m_Object= [[SomeObject alloc] init];
Это тоже работает? Это нарушение какого-то принципа управления памятью? Кажется, что это должно работать, одна строка, а не три, но я уверен, что я что-то упустил ....
Любое понимание будет оценено.