だから私はそう宣言する NSString オブジェクトを持っています:
NSString *XMLOut;
現在、このオブジェクトは空または非空にすることができます。
どうすれば見ることができますか?
If ([XMLOut isEqual:nil]) {
NSLog(@"XMLOut is empty");
} else {
NSLog(@"XMLOut is not empty");
}
それが正しいか ?
だから私はそう宣言する NSString オブジェクトを持っています:
NSString *XMLOut;
現在、このオブジェクトは空または非空にすることができます。
どうすれば見ることができますか?
If ([XMLOut isEqual:nil]) {
NSLog(@"XMLOut is empty");
} else {
NSLog(@"XMLOut is not empty");
}
それが正しいか ?
現在、このオブジェクトは空または非空にすることができます。
空は と同じではありませんnil
。
空の文字列は文字列のままです。(ゼロ)がありlength
、他の文字列を追加したり、文字列に含めて文字で結合したりできます。
nil
対象外です。そこには文字列はありません。そこには何もありません。長さやその他のプロパティはありません。
では、「 である可能性のある文字列を比較して、 であるnil
かどうかを判断しnil
たい」または「空の可能性がある文字列を比較して、それが空であるかどうかを判断したい」という意味ですか?
nil
isEqual:
メソッドのドキュメントには次のように書かれています。
anObject
: レシーバーと比較されるオブジェクト。である可能性がnil
あり、その場合、このメソッドは を返しますNO
。
したがって、そうXMLOut
でない場合はnil
、[XMLOut isEqual:nil]
が返されることが保証されていNO
ます。
しかし、そうでない場合はどうなりnil
ますか?
nil
基本的にすべての種類のゼロ (構造体などを除く)を返すメッセージNO
。
つまり、常に次のようになり[XMLOut isEqual:nil]
ます。NO
XMLOut
である場合、質問に関係なくnil
、答えは常にです。NO
XMLOut
ではない場合nil
、答えはNO
に等しい文字列がないためnil
です。==
代わりに演算子を使用してください。XMLOut == nil
かどうかを正しくテストしXMLOut
ますnil
。
mah がコメントで既に述べたように、文字列にそのlength
.
XMLOut
がの場合nil
、質問に関係なく、答えは常にゼロです。XMLOut
、その長さはゼロです。XMLOut
が他の文字列の場合、その長さは 0 より大きくなります。