Bei der Erstellung einer Zeichenkette wird die folgende Notation verwendet:
NSString *foo = @"Bar";
Muss man die foo
? Oder ist foo
in diesem Fall automatisch ausgelöst?
Bei der Erstellung einer Zeichenkette wird die folgende Notation verwendet:
NSString *foo = @"Bar";
Muss man die foo
? Oder ist foo
in diesem Fall automatisch ausgelöst?
Wie in den Dokumentationen erwähnt
Sie übernehmen die Verantwortung es mit einer Methode erstellen, deren Name mit "alloc" oder "new" beginnt oder "copy" enthält (zum Beispiel alloc, newObject, oder mutableCopy), oder wenn Sie eine Retain-Nachricht senden. Sie sind verantwortlich für die Übergabe von Eigentum an Objekten, die Sie besitzen, mit release oder autorelease. Jedes andere Mal Sie ein Objekt erhalten, dürfen Sie es nicht freigeben.
Da Sie alloc, copy, etc. nicht verwenden, müssen Sie sich nicht um die Freigabe des Objekts kümmern.
Ich stimme @Ben\ Gottlieb zu: "Vom Compiler zugewiesene Zeichenketten (des Formats @"STRING") sind Konstanten", aber da Sie sie nicht durch Übergabe einer alloc
o retain
Nachricht, dürfen Sie nicht release
o autorelease
Nachricht an sie senden, sonst stürzt Ihre Anwendung mit folgendem Protokoll ab
"p zugewiesen"
NSString *str = [NSString string];
ist gleichbedeutend mit:
NSString *str = [[[NSString alloc] init] autorelease];
also release
o autorelease
darf auch hier nicht überschritten werden.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
Es tut mir leid, die Antwort zu spät hinzuzufügen, aber ich denke, Sie sollten sie auf Vollständigkeit überprüfen, da die Antwort von Ben einige Fehler enthält.