0

単純ですが奇妙な問題があります。文字列(さまざまなxmlから取得)と比較して、それらが一致するかどうかを確認します。NSLogを介して変数をトレースすると、同じように見えますが、明らかにそうではありません。だから私はそれがそのエンコーディングで何かをしなければならないと思います、しかし私は何を知りません。誰か助けますか?

文字列の長さが同じではないことがわかりましたが、空白が見つかりません。

コード:

NSString* value1 = [mymovieId stringByReplacingOccurrencesOfString:@" " withString:@""];
NSString* value2 = [movieId stringByReplacingOccurrencesOfString:@" " withString:@""];

NSLog(@"%@ == %@", mymovieId, movieId);
NSLog(@"%i / %i", value1.length, value2.length);

if ([value1 compare:value2] == NSOrderedSame) {
    NSLog(@"YES!");
} else {
    NSLog(@"NO!");
}

結果:

2012-01-17 20:40:06.044 Appname[6307:f803] 75175343 == 75175343
2012-01-17 20:40:06.044 Appname[6307:f803] 9 / 8
2012-01-17 20:40:06.045 Appname[6307:f803] NO!

確かに、この問題は私のrawdataが原因で存在しますが、プロジェクト全体をここにアップロードすることはできないので、とにかく誰かが答えを知っていることを願っています。

Thanx Wolfgang

4

2 に答える 2

1

文字列をデータとしてログに記録してみてください。

NSLog(@"mymovieId: %@", [mymovieId dataUsingEncoding:NSUnicodeStringEncoding]);
NSLog(@"movieId: %@", [movieId dataUsingEncoding:NSUnicodeStringEncoding]);

これにより、文字列の16進ダンプが印刷され、印刷できない文字が表示されるようになります。

コメントから、文字列の1つが改行で始まっているように見えます。これを試して:

movieId = [movieId stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
mymovieId = [mymovieId stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
于 2012-01-17T19:36:08.757 に答える
0

使ってみてください

[NSString compare: options: range:]

(つまり、文字列の1つの範囲を含めます)。

私の推測では、文字列の最後に空白があります(XML結果の1つから来ています)。これらの2つの文字列の長さを確認すると、確実に表示されます。

于 2012-01-17T19:33:17.623 に答える