私は文字列の配列を持っています。コンマで区切られた長い文字列をいくつかのコンポーネント文字列に分解して配列を作成しました。私はそれらのコンポーネントをNSLogすることができ、正しく表示されます。私は非常にのNSLogを含むものとしてそれを示してオブジェクトに対するこれらのコンポーネントのいずれかをテストする場合は、テストはまだ失敗:文字列の等価性のテストが正しく一致しません
NSArray*parseLine=[[NSArray alloc] initWithArray:[newline componentsSeparatedByString:@","]];
NSLog(@"*%@*"[parseLine objectAtIndex:1]);
出力:
*N/A*
だから、明確に「N/A」があるが、それら3つの文字を正確に。
if ((NSString*)[parseLine objectAtIndex:1][email protected]"N/A")
なぜそれがテストに合格しない:また、これを試してみました
if ([parseLine objectAtIndex:1][email protected]"N/A") //never passes
:
はしかし、これはテストに失敗しましたか?
あなたは、文字列リテラル「foo」を書くとき、それが特定のメモリアドレスにメモリに保存されているだろう
isEqualToString
機能を試すの等価性をチェックするには
。 if文で文字列リテラルを使用する場合、何かが "foo"という文字列と等しいかどうかを判断するのではなく、何かが "foo"を指しているかどうかを比較しています。 –