1

私の問題は、NSStringがあり、それを他の2つのNSStringと比較する必要があることです。

NSStringsを次のように比較するにはどうすればよいですか?

if(a == (b || c))

これに対する私の解決策はまだうまくいきません(しかし機能します):

NSString *a = @"myfirststring";
NSString *b = @"mysecondstring";
if([[NSString stringWithFormat:@"%s", MethodThatReturnsChar*] isEqual:a] || [[NSString stringWithFormat:@"%s",MethodThatReturnsChar*] isEqual:b])
{
}

問題は、MethodThatReturnsChar *を2回呼び出す必要があることです。これは必要ありませんか?

4

3 に答える 3

4

それは必要ありませんね?

まさに、それは完全に不必要です。そのため、C言語には変数があります...また、乱用しないでください- [NSString stringWithFormat:]。さらに、isEqualToString:比較に使用します。

NSString *a = [NSString stringWithUTF8String:someCharPtr];
if ([a isEqualToString:b] || [a isEqualToString:c]) {
    DoStuff();
}
于 2012-12-16T13:48:05.083 に答える
0

その文字列を変数に割り当ててから、他の文字列と比較します

    NSString *a = @"myfirststring";
    NSString *b = @"mysecondstring";
    NSString *stringIAmComparing = [NSString stringWithFormat:@"%s", MethodThatReturnsChar*];
    if([stringIAmComparing isEqualToString:a] || [stringIAmComparing isEqualToString:b])
    {
    }
于 2012-12-16T13:48:11.873 に答える
0

「MethodThatReturnsChar*」を別のNSStringにラップするには、

NSString* stringToCompare = [NSString stringWithCString:yourCString encoding:NSUTF8StringEncoding];

次に比較します:

if([stringToCompare isEqualToString:a] || [stringToCompare isEqualToString:b])

お役に立てば幸いです。

于 2012-12-16T13:49:11.577 に答える