私のアプリでは、特定の時点で2つのNSString
が同じことをする必要があるメカニズムがあります。私が2つを比較するとき何らかの理由で、彼らが同じであっても、それはまだそれを認識しません。コードはこのようなものである:、2つのNSStringsを比較します
NSString * aString = [self someMethodThatGetsAString];
NSString * bString;
BOOL areStringsTheSame = NO;
while (areStringsTheSame != YES) {
bString = [self someMethodThatTakesNSStringsFromAnArrey];
if (bString == aString) {
areStringsTheSame = YES;
{ }
私もNSLog()
を挿入し、ある時点で、彼らは同じであった(と私の知る限り、これは...の略==
何である)ことを確認しましたが、それでもBOOL
の値を変更するにはif
には入りませんでした。
この比較を行う別の方法はありますか?何か不足していますか?
は、あなたが比較する前に、ゼロ幅空白文字から、あなたの文字列をきれいにする必要があり、これを克服するには真実。 OOPの原則を掘り下げる(同じプロパティを持つ2つのオブジェクトは必ずしも同じオブジェクトである必要はありません)。さもなければ、あなたは開発者の生活の毎日この問題に遭遇するだろう:-) – vstrien
Objective-Cが文字列変数を使う方法のために、 '=='は大文字と小文字を区別して比較することができます。例えば、文字列Aと文字列Bを宣言し、 '=='を実行すると、それらは同じアドレスに格納されています。 –