私は古いスウィフト文字列から新しいスウィフト文字列を定義するには、古いprintfスタイルの文字列フォーマッタを使用しようとしています。可変引数リストでC文字列としてスウィフトの文字列を渡す
私はこれがある限り、私は文字列変数リテラルではなくスウィフト文字列で始めていて正常に動作気づきます。
// OK!
String(format:"%s", "hello world".cStringUsingEncoding(NSUTF8StringEncoding))
// ERROR: argument type '[CChar]?' does not conform to expected type 'CVarArgType'
let s = "hello world"
String(format:"%s", s.cStringUsingEncoding(NSUTF8StringEncoding))
どうしてですか?
そして、最高の回避策は何ですか?
(私が知っなく、ココアの文字列フォーマッタ%@
を使用しないことに注意してください。私はprintfスタイルの書式コードを望むものを私は実際にやろうとしていることはコードで迅速かつ汚い表形式のアライメントを取得しているので、 %-10s
のような。)2.2スウィフト
この質問の懸念。
興味深い。型を 's'の注釈に' String'とするとどうなりますか? – Alexander