この質問には2つの部分があります。最初に、基本64文字列をData
/NSData
に変換します。しかし、あなたはすでにそれをしているので、あなたはそこに助けを必要としません。
第2に、Data
/NSData
を文字列に変換します。しかし、そのファイルを注意深く見ると、データはPDFファイルであり、テキスト文字列ではありません。例えば、場合、私は、ファイルとしてバイナリエディタでそれを見ていることをセーブ、私はそれがPDFだはっきり見ることができます。
あなたは単なる文字列にそのPDFバイナリデータを変換することはできません。実際には、複雑なバイナリデータであるため、最初はbase64でエンコードされていました。
ただし、ファイルに保存したPDFファイルをプレビューするには、UIDocumentInteractionController
を使用します。例えば
:
// convert base 64 string to data
let base64 = "JVBERi0xLjQKJcfsj6IKNSAwIG9iago8PC9MZW5ndGggNiAwIFIvRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nLVcza8ct5GH1rK9ejIU24lkO5GtJ8vWm5E87eY3uXtbYLHAYi8JdItySrABAjhA8v8fUuwmu35kF2fmxbsWDMxjk8VisapYX+TfbudJ6ds5/6s/"
guard let data = Data(base64Encoded: base64) else {
print("unable to convert base 64 string to data")
return
}
// given the data was PDF, let's save it as such
let fileURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
.appendingPathComponent("test.pdf")
try! data.write(to: fileURL)
// if it was a string, you could convert the data to string, but this will fail
// because the data is a PDF, not a text string
//
// guard let string = String(data: data, encoding: .utf8) else {
// print("Unable to convert data into string")
// return
// }
// print(string)
// So, instead, let's use `UIDocumentInteractionController` to preview the PDF:
let controller = UIDocumentInteractionController(url: fileURL)
controller.delegate = self
controller.presentPreview(animated: true)
場合、ビューコントローラはUIDocumentInteractionControllerDelegate
に準拠:
extension ViewController: UIDocumentInteractionControllerDelegate {
func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
return self
// or, if this view controller is already in navigation controller, don't
// return `self`, like above, but instead return the navigation controller itself
//
// return navigationController!
}
}
出典
2017-07-04 05:05:35
Rob
データをさせた場合=データ(base64Encoded:base64String){ VAR列=文字列(データ:データ、エンコーディング:.utf8) }このコード文字列変数の –
は、nil –
を出力します。これは、Base64からNSData to Stリング。 –