また、たとえば次の場合に必要ではないのはなぜですか。
printf ("abc")
NSLog
NSString
as 引数を取ります。@"abc"
はNSString
、@ 記号のために を示します。したがって、これは の有効な引数ですNSLog
。printf
"" を使用して単純に作成された C 文字列を受け取る通常の C 関数です。
UPDATE:
NSLog(@"%@",dictionary)
文字列引数の要件を満たすために文字列を取得したことをコンパイラに伝えます。
更新: 申し訳ありませんが、printf の代わりに「NSLog」を書くことになっていたのです。私の間違い!
NSStringが必要だからです。NSObject の型として @declares 値を追加します (簡略化)。