0

<tag></tag>またはのようなものに遭遇する XML パーサーを実行します<tag>content</tag>。どちらの方法でも、後で使用するためにノードのコンテンツを保存します。

どこか他の場所で、コンテンツが空であるかどうかを確認したいと思います。@""空のノードはまたはになると思いましたが(null)、どちらも正しくありません。

空のノードを表す NSString を特定できるようにしたいと考えています。NSString を NSLogging すると、何らかの改行が発生しますが、それをチェックすると@"\n"@"\r"どちらでもないことがわかります。

NSStringの実際の文字 (エスケープ シーケンスを含む)をログに記録する方法はありますか? 改行の代わりにNSLog(@"\n");出力するようなものです。"\n"

4

2 に答える 2

1

私の頭に浮かぶ (汚い?) トリックの 1 つは、NSJSONSerialization すべてのコントロールおよびその他の非 ASCII 文字をエスケープするという事実を使用することです。

NSString *foo = @"a\nb\rc d\t e\001\002";

NSData *json = [NSJSONSerialization dataWithJSONObject:@[foo] options:0 error:NULL];
NSString *escaped = [[NSString alloc] initWithData:json encoding:NSUTF8StringEncoding];
NSLog(@"%@", escaped);

出力:

["a\nb\rc d\te\u0001\u0002"]
于 2013-08-16T22:07:55.910 に答える