0

文字列の配列があります。配列は、長いコンマ区切りの文字列をいくつかのコンポーネント文字列に解析することによって作成されました。これらのコンポーネントをNSLogできますが、正しく表示されます。ただし、NSLogに含まれていると表示されているオブジェクトについて、これらのコンポーネントの1つをテストしても、テストは失敗します。

NSArray*parseLine=[[NSArray alloc] initWithArray:[newline componentsSeparatedByString:@","]];

NSLog(@"*%@*"[parseLine objectAtIndex:1]);

出力:

*N/A*

つまり、明らかに「N / A」があり、これらの3つの文字が正確に含まれています。

ただし、これはテストに失敗します。

if ([parseLine objectAtIndex:1]==@"N/A") //never passes

またこれを試しました:

if ((NSString*)[parseLine objectAtIndex:1]==@"N/A")

なぜテストに合格しないのですか?

4

1 に答える 1

2

==文字列だけでなくアドレスポインタも参照します。

等しいかどうかを確認するには、isEqualToString関数を試してください

だからそれは

if([parseLine objectAtIndex:1] isEqualToString:@"N/A"])

于 2012-04-05T06:11:31.907 に答える