Swift如何将多字符数字格式转换为可读字符串?
How to convert multiple-character numeric format into a readable string in Swift?
我正在尝试将我通过 AudioFileGetGlobalInfo 获得的 AudioStreamBasicDescription 的 mFormatID 属性 转换为可读字符串。
在 Objective-C 中它看起来像这样:
for (int i = 0; i < asbdCount; i++) {
UInt32 format4cc = CFSwapInt32HostToBig(asbds[i].mFormatID);
NSLog(@"mFormatID: %4.4s", (char*)&format4cc);
}
这段代码是学习核心音频书中的一段CAStreamFormatTester。 asbds 是指向 AudioStreamBasicDescriptions 的指针。如何将其转换为 Swift?
如果 asbds
是 UnsafePointer<AudioStreamBasicDescription>
类型或 [AudioStreamBasicDescription]
类型,那么我认为这应该有效:
for i in 0 ..< asbdCount {
var format4cc = CFSwapInt32HostToBig(asbds[i].mFormatID)
withUnsafePointer(&format4cc) { cptr in
println(String(format: "mFormatID: %4.4s", cptr))
}
}
我正在尝试将我通过 AudioFileGetGlobalInfo 获得的 AudioStreamBasicDescription 的 mFormatID 属性 转换为可读字符串。 在 Objective-C 中它看起来像这样:
for (int i = 0; i < asbdCount; i++) {
UInt32 format4cc = CFSwapInt32HostToBig(asbds[i].mFormatID);
NSLog(@"mFormatID: %4.4s", (char*)&format4cc);
}
这段代码是学习核心音频书中的一段CAStreamFormatTester。 asbds 是指向 AudioStreamBasicDescriptions 的指针。如何将其转换为 Swift?
如果 asbds
是 UnsafePointer<AudioStreamBasicDescription>
类型或 [AudioStreamBasicDescription]
类型,那么我认为这应该有效:
for i in 0 ..< asbdCount {
var format4cc = CFSwapInt32HostToBig(asbds[i].mFormatID)
withUnsafePointer(&format4cc) { cptr in
println(String(format: "mFormatID: %4.4s", cptr))
}
}