NSString *aString = @"Hello";
Wird eine autoreleased
Zeichenfolge erstellen. Das heißt, wenn Sie nicht explizit retain
es, wird es möglicherweise verschwinden, nachdem Ihre Methode vorbei ist (und manchmal ist das völlig in Ordnung). Aber wenn Sie nach dieser Zeit daran festhalten wollen, müssen Sie es behalten.
Wenn Sie erstellen eine Eigenschaft für diese Zeichenfolge wie diese
@property (retain) NSString *aString;
Und dann wie folgt vergeben:
self.aString = @"Hello";
Dann sind Sie richtig die Zeichenfolge beibehalten und es wird bleiben, um.
Auf der anderen Seite erstellt alloc, init
eine Zeichenfolge für Sie mit einer Retain-Anzahl von 1, und wenn Sie es nicht über diese Methode benötigen, sollten Sie release
es.
**** Bearbeiten: @ "Hallo" ist keine Autorelease-String, wie andere hingewiesen haben. Mein Fehler. ****
Ok, aber ich wollte es formatieren Ich muss initWithFormat zuweisen (oder die Autorelease-Methode StringWithFormat) richtig? – mk12
Ja, weil eine Zeichenfolge, die Sie über ein Format generieren, nicht konstant ist, wird sie zur Laufzeit dynamisch erstellt. –