私はディスクにファイルを書きますが、自分のコードをSwift 3に変換中です。何かにぶつかってしまいました。誰かが私に正しい方向へのプッシュを与えることができるかどうかを見たいと思った。Swiftの安全でないバイト3
私の現在のコードブロックは次のとおりです。
open let text: NSString
data = possibleData ?? Data()
open let fileURL: URL?
open let fileEncoding: String.Encoding?
fileprivate let data: Data!
text = NSString(bytesNoCopy: UnsafeMutableRawPointer(mutating: data.bytes.bindMemory(to: Void.self, capacity: data.count)), length: data.count, encoding: encoding.rawValue, freeWhenDone: false)!
スウィフトはdata.bytesの呼び出しは使用できないことを言うと、私が代わりに.unsafebytesを使用する必要があることです。
data.withUnsafeMutableBytes {(bytes: UnsafeMutablePointer<UInt8>)->Void in
//work with bytes in here
}
:私は、だから私は少し研究を行なったし、一部の人々は、このような閉鎖ブロックを使用するように言ってきた
(それは危険なバイトにバイトを切り替えるように単純ではありません)あなたが危険なバイトを呼び出す方法を把握していません
私の問題は、上記のコードを動作させるためにクロージャブロック内に何を入れればよいのでしょうか?私は基本的に何かが欠けていると思う。同じエラーが再び発生するため、バイトを使用できません。
誰もが考えている?ありがとう! 、あなたはNSString
を使用したい理由を私は知らない、
let text = data.withUnsafeMutableBytes { bytes in
return NSString(bytesNoCopy: bytes, length: data.count, encoding: encoding.rawValue, freeWhenDone: false)!
}
または:
の可能性のある重複[「バイト」を使用できません。代わりにwithUnsafeBytesを使用する](http://stackoverflow.com/questions/38979575/bytes-is-unavailable-use-withunsafebytes-instead) –
あなたが実際にどのようなものです達成しようとしている?文字列をデータに、またはその逆に変換しますか?文字列やデータをファイルに書き込む?何が与えられ、何が計算されるのですか? –
申し訳ありませんが、これは以前の開発者が使用した「Swiftache」の一部でした。私はちょうどそれをアップグレードし、私は今良いありがとう! – NullHypothesis