gpt4 book ai didi

ios - 将字节数组转换为 PDF 文件?

转载 作者:行者123 更新时间:2023-11-30 14:16:27 27 4
gpt4 key购买 nike

我从 iOS 应用程序进行 RESTful 调用以检索 pdf 文件。该pdf文件是字节格式的。

我发现了很多关于如何在 Objective-C 中将这些字节转换为实际文件的文章;但是,我需要 Swift 语言方面的帮助。

RESTful 调用还会返回其他内容,而不仅仅是文件字节,因此我从调用中返回的其他信息中提取字节。

let fileBlob = json["fileBlob"] as! String 
var data: NSData = NSPropertyListSerialization.dataWithPropertyList(fileBlob, format: NSPropertyListFormat.BinaryFormat_v1_0, options: Int(NSPropertyListMutabilityOptions.MutableContainersAndLeaves.rawValue), error: nil)!
let file = data.writeToFile("readingfile.pdf", atomically: false)

上面是我用来从返回的内容中提取文件字节的代码,然后将该文件写入我的计算机,只是为了看看是否可以打开 pdf 文件。

这三行创建了文件,但是当我单击该文件打开它时,它说无法打开它,因为它可能已损坏或使用预览无法识别的文件格式...

最佳答案

您需要使用 NSURLSession 异步执行此操作:

func load(URL: NSURL) {
let sessionConfig = NSURLSessionConfiguration.defaultSessionConfiguration()
let session = NSURLSession(configuration: sessionConfig, delegate: nil, delegateQueue: nil)
let task = session.dataTaskWithURL(URL, completionHandler: {
(data: NSData!, response: NSURLResponse!, error: NSError!) -> Void in
if (error == nil) {
// Success
let statusCode = (response as! NSHTTPURLResponse).statusCode
println("Success: \(statusCode)")
println("File Size: \(data.length)")

// Your file variable is data (see previous println with data.length as example)

} else {
// Failure
println("Failure: %@", error.localizedDescription);
}
})
task.resume()
}

然后你可以这样调用它:

if var URL = NSURL(string: "http://www.whatever.com/yourfile.pdf") {
load(URL)
}

如果您想在 Playground 中进行测试,则需要在 Playground 代码中添加以下两条语句:

import XCPlayground

XCPSetExecutionShouldContinueIndefinitely()

关于ios - 将字节数组转换为 PDF 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31117328/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com