私は2つの文字列の両方に値nullを持っています。nullチェックNSString
if([textField.text isEqualToString:str])
{
//Some code
}
はどちらヌルですが、コントロールが条件の場合に取得されていません。私は、文字列を比較していたとき、私はいくつかの問題を抱えています。
助けてください。
おかげで、
ストーン
私は2つの文字列の両方に値nullを持っています。nullチェックNSString
if([textField.text isEqualToString:str])
{
//Some code
}
はどちらヌルですが、コントロールが条件の場合に取得されていません。私は、文字列を比較していたとき、私はいくつかの問題を抱えています。
助けてください。
おかげで、
ストーン
[nil anyMethodName]
は常にゼロを返します/ NO。ヌルケースを処理するには、==
と比較する必要があります(ただし、null以外の場合を処理するには、isEquals
という形式と比較してください)。
isEqualToString
は、NULLであるポインタ(textField.text
とstr
)はオブジェクトを指しません。メッセージをnilに送信することは許可され、nilを返します。
このような場合は、ポインタが有効なオブジェクトを指していることを確認します。その場合は、NSString
オブジェクトです。
おそらく:
if((textField.text==nil && str==nil) || [textField.text isEqualToString:str])
{
//Some code
}
また、最初のテストを 'textField.text == str'にすることもできます。 –
はい、しかし、それはアドレスが比較されているように見え、やや誤解を招くようなコードは好きではありません。私の気持ちは、「無」がより明確であるということです。 – zaph
アドレスは比較されています。 2つのストリングが1つで同じものであれば、2回目のテストは短絡されますが、これは非常に上手です。 –
私は、
あなたが何をしたいのかよく分からないが、あなたが何かをしたい場合は、テキストフィールドが空白のときに
if([textField.text isEqualToString:@""])
{
//Some code
}
これを書くことができます:
NSString *s1 = nil;
NSString *s2 = nil;
// you can compare two nils
if (s1 == s2)
{
NSLog(@"==");
}
// s1 is nil so you shouldn't send a message to it
if ([s1 isEqualToString:s2])
{
NSLog(@"isEqualToString");
}
Out puts:
2011-12-19 07:33:54.651 Craplet[2845:707] ==
あなたは何をしたいですか?私はあなたがテキストフィールドが空であるかどうかをチェックしたいと思うと仮定します。
テキストフィールドが空白の場合、2つの値のいずれかが割り当てられている可能性があります。それらは@ ""またはnilかもしれません。 したがって、両方をチェックする必要があります。
if ([@"" isEqualToString: textField.text] || !textField.text) {
NSLog(@"Text Field is empty");
}
strの値を取得した場所から取得してください。あなたの問題を理解するための詳細情報を提供してください。 – MinuMaster
@hotlicks:私を修正するためのthnx。もちろん、あなたはr8。 – iCoder4777