UnsafeMutablePointer<Character>
CoreFoundation メソッドで満たされています。
プレースホルダーでNSLog すると%s
、問題なく出力されます。
しかし、Swift で試してみるとprint
、メモリ アドレスが書き込まれるだけです。
ほとんどすべてを試しました...また、基になるmemory
プロパティにアクセスしようとすると、EXC_BAD_ACCESS
.
let deviceName = UnsafeMutablePointer<Character>.alloc(64)
/* other statements in which deviceName is filled */
NSLog("device %s by %s", deviceName, manufacturerName)
// Outputs correctly the string
print(String(deviceName[0]))
// Get an EXC_BAD_ACCESS error at runtime
print(String(deviceName.memory))
// Get an EXC_BAD_ACCESS error at runtime
let str = withUnsafePointer(&deviceName) { String.fromCString(UnsafePointer($0)) }
print(str)
// Outputs an empty string
print("\(deviceName) by \(manufacturerName)")
// Outputs just memory addresses