, Поскольку у вас также есть одна ссылка на объект, это правильно.

от вопрос уже есть ответ здесь:

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];  

Это тоже работает? Это нарушение какого-то принципа управления памятью? Кажется, что это должно работать, одна строка, а не три, но я уверен, что я что-то упустил ....

Любое понимание будет оценено.

Ответы на вопрос(3)

Ваш ответ на вопрос