説明%02.2hhx高い投票で答え:
%:x変換指定子を紹介します。
02:変換された値の最小幅は2です。変換された値のバイト数がフィールド幅より少ない場合は0、左側が埋め込まれます。
.2:x変換指定子に表示される最小桁数を指定します。
hh:を指定します x変換指定子がsigned charまたはunsigned char引数に適用されることを指定します(引数は整数の昇格に従って昇格されますが、その値は出力前にsigned charまたはunsigned charに変換されます)。
x:符号なし引数は、「dddd」のスタイルで符号なし16進形式に変換されます。「abcdef」という文字が使用されます。精度は、表示される最小桁数を指定します。変換される値がより少ない桁数で表現できる場合は、先行ゼロで拡張する必要があります。デフォルトの精度は1です。ゼロの明示的な精度でゼロを変換した結果は、文字にはなりません。
詳細については、IEEE printf仕様を参照してください。
上記の説明に基づいて、またはに変更%02.2hhxすることをお勧めします%02x%.2x。
Swift 5では、次の方法がすべて実行可能です。
deviceToken.map({String(format: "%02x", $0)}).joined()
deviceToken.map({String(format: "%.2x", $0)}).joined()
deviceToken.reduce("", {$0 + String(format: "%02x", $1)})
deviceToken.reduce("", {$0 + String(format: "%.2x", $1)})
テストは次のとおりです。
let deviceToken = (0..<32).reduce(Data(), {$0 + [$1]})
print(deviceToken.reduce("", {$0 + String(format: "%.2x", $1)}))
// Print content:
// 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
NSLog、版画、1つのnewDeviceToken?