Ich möchte den Wert von a NSString
mit der Zeichenfolge "Wrong" vergleichen. Hier ist mein Code:
NSString *wrongTxt = [[NSString alloc] initWithFormat:@"Wrong"];
if( [statusString isEqualToString:wrongTxt] ){
doSomething;
}
Muss ich wirklich einen NSString für "Wrong" erstellen?
Außerdem kann ich vergleichen Sie den Wert eines UILabel
‚s text
in einen String ohne das Etikett Wert in einen String zuweisen?
Antworten:
Nein, warum nicht einfach:
Mit using wird
@""
einfach ein String-Literal erstellt, das gültig istNSString
.Ja, Sie können so etwas tun:
quelle
quelle
Brian, es lohnt sich auch, hier reinzuwerfen - die anderen haben natürlich Recht, dass Sie keine String-Variable deklarieren müssen. Wenn Sie das nächste Mal eine Zeichenfolge deklarieren möchten, müssen Sie jedoch nicht Folgendes tun:
Obwohl das oben Genannte funktioniert, bietet es eine beibehaltene NSString-Variable, die Sie nach Beendigung der Verwendung explizit freigeben müssen.
Wenn Sie das nächste Mal eine Zeichenfolgenvariable möchten, können Sie das Symbol "@" viel bequemer verwenden:
Dies wird automatisch freigegeben, wenn Sie damit fertig sind, damit Sie auch Speicherlecks vermeiden ...
Hoffentlich hilft das!
quelle
new
odercopy
zum BeispielnewObject
(vonNSDictionaryController
) odermutableCopy
(vonNSObject
) developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/…Sie können auch die NSString-Klassenmethoden verwenden, mit denen auch eine automatisch freigegebene Instanz erstellt wird und weitere Optionen wie die Formatierung von Zeichenfolgen verfügbar sind:
quelle