NSString
の値を文字列 "Wrong"と比較したい。ここに私のコードがあります:
NSString *wrongTxt = [[NSString alloc] initWithFormat:@"Wrong"];
if( [statusString isEqualToString:wrongTxt] ){
doSomething;
}
「間違った」ためにNSStringを本当に作成する必要がありますか?
また、ラベル値を文字列に割り当てずに、UILabel
のtext
の値を文字列と比較できますか?
「間違った」ためにNSStringを本当に作成する必要がありますか?
いいえ、なぜそうしないのですか:
if([statusString isEqualToString:@"Wrong"]){
//doSomething;
}
@""
を使用すると、単に文字列リテラルが作成されます。これは有効なNSString
です。
また、ラベル値を文字列に割り当てずに、UILabel.textの値を文字列と比較できますか?
はい、次のようなことができます:
UILabel *label = ...;
if([someString isEqualToString:label.text]) {
// Do stuff here
}
if ([statusString isEqualToString:@"Wrong"]) {
// do something
}
ブライアン、ここにも投入する価値があります-もちろん、文字列変数を宣言する必要がない他の人は正しいです。ただし、次回文字列を宣言する場合は、次のことを行う必要はありません。
NSString *myString = [[NSString alloc] initWithFormat:@"SomeText"];
上記は機能しますが、保持されたNSString変数を提供します。NSString変数は、使用終了後に明示的に解放する必要があります。
次に文字列変数が必要な場合は、「@」記号をはるかに便利な方法で使用できます。
NSString *myString = @"SomeText";
これは、作業が完了すると自動リリースされるため、メモリリークも回避できます。
お役に立てば幸いです!
NSStringクラスのメソッドを使用して、自動解放されたインスタンスを作成し、文字列の書式設定などのオプションを追加することもできます。
NSString *myString = [NSString stringWithString:@"abc"];
NSString *myString = [NSString stringWithFormat:@"abc %d efg", 42];