2010-08-24 3 views
1

Suis-je responsable de la libération de cette chaîne, et est-elle autorelease par défaut?Autorelease NSString

// command is of type NSData* 
char cAddress[12]; 
[command getBytes:cAddress range:NSMakeRange(5,12)]; 
NSString *someString = [NSString stringWithCharacters:(const unichar*)cAddress length:12]; 
+2

En ce qui concerne le sujet, lire et mémoriser le [objet de stratégie de propriété] (http://developer.apple.com/mac/library/documentation/Cocoa /Conceptual/MemoryMgmt/Articles/mmObjectOwnership.html#//apple_ref/doc/uid/20000043-SW1). –

+0

Si vous n'utilisez pas la libération automatique lorsque vous déclarez la variable, vous devez [libérer] l'élément dans le programme. – Questions

+1

@MarkSiu Sauf si la méthode retourne un objet autoreleased, ce que fait cette méthode. – kubi

Répondre

3

Il est auto-libéré par défaut. objets non distribués sont généralement créés avec des méthodes sous forme de:

[[MyClass alloc] ...] 
[MyClass new] 
[object copy] 
+0

Ou toute méthode * contenant * alloc/new/copy. Veuillez lire le Guide de programmation de la gestion de la mémoire (http://developer.apple.com/mac/library/documentation/cocoa/conceptual/MemoryMgmt/MemoryMgmt.html). C'est la seule vraie référence de mémoire pour la gestion de la mémoire Cocoa. –

+0

Je suis d'accord. Document vraiment important. – diederikh

4

Autoréléchargé par défaut.

Questions connexes