6

私は次の方法を持っています:

- (NSString *)description {
    return [NSString stringWithFormat:@"Attribute %@: %@", name, [values description]];
}

名前は文字列、値は NSArray です。これらのオブジェクトのいくつかを含む NSArray があります。

それを使用して属性を印刷するNSLog(@"Attribute created: %@", [newAttribute description]);と、正常に機能し、次のように印刷されます。

2012-12-08 14:38:06.883 DT[25684:303] Attribute created: Attribute color: (
    YELLOW,
    PURPLE
)
2012-12-08 14:38:06.884 DT[25684:303] Attribute created: Attribute size: (
    LARGE,
    SMALL
)

ただし、NSMutableArray を作成し、その中に複数の属性オブジェクトを配置すると、同じ方法で配列を出力すると、次の出力が得られます。

2012-12-08 14:38:06.887 DT[25684:303] Attributes: (
    "Attribute color: (\n    YELLOW,\n    PURPLE\n)",
    "Attribute size: (\n    LARGE,\n    SMALL\n)",
)

このコンテキストで改行文字を出力するのはなぜですか?また、それを防ぐにはどうすればよいですか?

4

2 に答える 2

1

この質問はここで回答されたようです: https://stackoverflow.com/a/5599699/5760384

基本的に、Exploring が言ったように、説明では \n 文字は機能しませんが、何らかの理由でキャリッジ リターンが機能します。そのため、代わりに \r を試してください。Xcode 7 のオーバーライドされた説明メソッドでこれをテストしたところ、正常に動作しました。

于 2016-01-08T01:47:10.817 に答える
0

これは、メソッド「説明」を使用して印刷しているときに、データが文字列に変換されるため、改行文字が表示されないためです。ただし、配列を使用して印刷している場合、の内容は文字列に変換されないため、改行文字が表示されます。

于 2012-12-28T00:40:17.187 に答える