2016-06-19 10 views
0

私はprintfのためにのNSStringと引数のリストを渡すためにしようとしているが、コンパイラは、私はこのような機能を持っているしたいのですが、一定printfを呼び出す関数にNSStringを渡すには?

されていないNSStringの不満です:

+ (void)logFormat:(NSString *)format logArguments:(va_list)args { 
    printf(format,args); 
} 

されていますそこに私は "安全"をしようとしているようにそのような方法でパラメータNSStringをマークする方法はありますか?

EDIT:const NSString *としてパラメータを宣言しようとしましたが、どちらもうまくいきませんでした。

+0

'printf(format.UTF8String、args);'を試してください。 – Avi

+1

@Aviフォーマット文字列に '%@'シーケンスが含まれていると失敗します。 – bbum

+0

それは 'printf()'の制限のためではないでしょうか?言い換えれば、それはOPのアプローチと無関係の問題ではないか? – Avi

答えて

1

フルフォーマットのNSStringオブジェクトを作成するには、NSStringstringWithFormat:arguments:を使用し、その内容をprintfで書き込む必要があります。

完全にフォーマットされているため、そのままstdoutfwrite()でダンプするか、NSFileHandleを使用してください。

関連する問題