Voici un exemple tiré de projet Apple iPhone SDK:Est-ce que la copie alloue la mémoire requise?
@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];
}
Ma compréhension est que « copie » sera également allouer la mémoire nécessaire pour copier l'objet protocolString passé comme argument, et donc il n'y a pas besoin de allouer (alloc) quelque chose avant de copier.
Ai-je raison?
Cordialement, Apple92