CCharの配列データをUInt8配列に変換したい

実現したいこと

SwiftからObjective-Cのメソッドを呼び出し、返却されたCChar配列のデータをUInt8配列に変換したいです。

前提

発生している問題・エラーメッセージ

UnsafeMutableRawPointerを使用してUInt8配列を渡せば結果は得られるのですが、警告が出てしまいます。 CChar配列のポインタを渡せば警告無しでデータは得られるのですが、後続処理(データ画像へ変換する)にて データをUInt8配列で渡す必要があります。

該当のソースコード

Swift

1var ccharArray = [CChar](repeating: 0, count: 100)2var uint8ByteArray = [UInt8](repeating: 0, count: 100)3 4// Objective-Cのメソッド呼び出し、ccharArrayにデータが入っている5objWrap.dataRead(&ccharArray)6 7// 以下の様にUnsafeMutableRawPointerで「uint8ByteArray」を渡しても動くが、8// 警告で9// 「initialization of 'UnsafeMutableRawPointer' results in a dangling pointer」10// が出てしまう11objWrap.dataRead(UnsafeMutableRawPointer(mutating: uint8ByteArray))

試したこと

補足情報(FW/ツールのバージョンなど)

Xcode 14.2
Swift 5

コメントを投稿

0 コメント