Je veux comparer la valeur de an NSString
à la chaîne "Wrong". Voici mon code:
NSString *wrongTxt = [[NSString alloc] initWithFormat:@"Wrong"];
if( [statusString isEqualToString:wrongTxt] ){
doSomething;
}
Dois-je vraiment créer une NSString pour "Wrong"?
De plus, je peux comparer la valeur d'un UILabel
« s text
à une chaîne sans affecter la valeur d'étiquette à une chaîne?
Réponses:
Non, pourquoi ne pas simplement faire:
if([statusString isEqualToString:@"Wrong"]){ //doSomething; }
L'utilisation
@""
crée simplement une chaîne littérale, qui est une valeur valideNSString
.Oui, vous pouvez faire quelque chose comme:
UILabel *label = ...; if([someString isEqualToString:label.text]) { // Do stuff here }
la source
if ([statusString isEqualToString:@"Wrong"]) { // do something }
la source
Brian, cela vaut également la peine d'être ajouté ici - les autres ont bien sûr raison de dire que vous n'avez pas besoin de déclarer une variable chaîne. Cependant, la prochaine fois que vous souhaitez déclarer une chaîne, vous n'avez pas besoin de faire ce qui suit:
NSString *myString = [[NSString alloc] initWithFormat:@"SomeText"];
Bien que ce qui précède fonctionne, il fournit une variable NSString conservée que vous devrez ensuite libérer explicitement après avoir fini de l'utiliser.
La prochaine fois que vous voudrez une variable chaîne, vous pouvez utiliser le symbole "@" d'une manière beaucoup plus pratique:
NSString *myString = @"SomeText";
Cela sera automatiquement publié lorsque vous en aurez terminé, vous éviterez ainsi les fuites de mémoire ...
J'espère que ça t'as aidé!
la source
new
oucopy
par exemplenewObject
(deNSDictionaryController
) oumutableCopy
(deNSObject
) developer.apple.com/documentation/Cocoa/Conceptual/MemoryMgmt/…Vous pouvez également utiliser les méthodes de classe NSString qui créeront également une instance libérée automatiquement et auront plus d'options comme le formatage de chaîne:
NSString *myString = [NSString stringWithString:@"abc"]; NSString *myString = [NSString stringWithFormat:@"abc %d efg", 42];
la source