2010-10-19 3 views
0

Вот пример взят из проекта Apple, iPhone SDK:Выполняет ли копирование требуемую память?

@interface EADSessionController : NSObject <EAAccessoryDelegate, NSStreamDelegate> { 
    EAAccessory *_accessory; 
    EASession *_session; 
    NSString *_protocolString; 

    NSMutableData *_writeData; 
    NSMutableData *_readData; 
} 

... 

// initialize the accessory with the protocolString 
- (void)setupControllerForAccessory:(EAAccessory *)accessory withProtocolString:(NSString *)protocolString 
{ 
    [_accessory release]; 
    _accessory = [accessory retain]; 
    [_protocolString release]; 
    _protocolString = [protocolString copy]; 
} 

Я понимаю, что «копия» также будет выделять память, необходимую, чтобы скопировать объект protocolString передается в качестве аргумента, и, следовательно, не нужно выделить (выделить) что-то перед копированием.

Я прав?

С уважением, Apple92

ответ

0

Правильно. Копия начинается с сохранения количества (по крайней мере) одного, и вы несете ответственность за его выпуск. (См. Object Ownership Policy.)

 Смежные вопросы

  • Нет связанных вопросов^_^