2017-02-18 10 views
5

申し訳ありませんが重複していますが、AppleのString Format SpecifiersIEEE printf specなどの検索を試しましたが、このような単純なもので答えが見つかりませんでした。Swiftの文字列定数用の文字列フォーマッタ?

文字列定数の文字列フォーマッタでos_logメッセージを出力したいと思います。私はスウィフトにこのような何かを試してみましたがC.で

printf("Currently at processing state: %s\n", "reading in"); 

、::と同類何か、それは単純に全く何も印刷されていない

os_log("Currently at processing state: %s", log: .default, type: .info, "reading in") 

文字列フォーマット指定子を使用して文字列定数を出力するにはどうすればよいですか?私はNSLogでもそれをどうするかわかりません。

編集:os_logにはStaticStringが必要なので、のような"Something \(Expr) Something else"のようにすることはできません。文字列書式を使用して数値変数を出力することはできます。この場合、文字列定数/変数を出力する方法は不思議です。

編集2:アップルは実際にはmanual pageというこのトピックについて議論していますが、私はそれを見逃すことができましたが、現在はObjective-C APIバージョンでのみ議論されています。

+0

"何か\\(任意のスウォッチ式)なんか" –

答えて

5

os_log manページから:

また、OBJの-Cで使用するために、「%@」書式指定子を使用することができます/ CF /スウィフトは、あなたのケースでは

オブジェクト

import os.log 

os_log("Currently at processing state: %@", log: .default, type: .info, "reading in") 

は、Swift文字列が 可変引数リストのNSStringに橋渡しされているために機能します。

+0

パーフェクト!ありがとうございました! – HuaTham

-2

これは動作します:

print("Currently at processing state: \(readingin)") 

をだからあなたはあなたがreadinginのために印刷したいパラメータを置きます。

(これはあなたの質問を解決した場合の答えとしてそれをマークしてください)

+0

変数の値を出力するために 'StaticString'の文字列フォーマット指定子を必要とする' os_log'の答えを探しています。 – HuaTham

関連する問題