当前位置: 首页 > 面试题库 >

在iOS中使用Swift保存PDF文件并显示它们

龚凌
2023-03-14
问题内容

我想构建一个应用程序,其中还包括在应用程序内部 显示和保存PDF 并在表格视图中显示它们(作为文件系统)并在我点击一个PDF时打开它们的可能性。

这是我的重要问题:

1.如何在我的应用程序上保存本地PDF(例如,如果用户可以输入URL)以及它将保存在什么位置?

2.保存后,如何在表视图中显示所有本地存储文件以打开它们?


问题答案:

既然有几个人要求这样做,那么这相当于Swift中的第一个答案:

//The URL to Save
let yourURL = NSURL(string: "http://somewebsite.com/somefile.pdf")
//Create a URL request
let urlRequest = NSURLRequest(URL: yourURL!)
//get the data
let theData = NSURLConnection.sendSynchronousRequest(urlRequest, returningResponse: nil, error: nil)

//Get the local docs directory and append your local filename.
var docURL = (NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)).last as? NSURL

docURL = docURL?.URLByAppendingPathComponent( "myFileName.pdf")

//Lastly, write your file to the disk.
theData?.writeToURL(docURL!, atomically: true)

另外,由于此代码使用同步网络请求,因此我强烈建议将其分派到后台队列:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { () -> Void in
    //The URL to Save
    let yourURL = NSURL(string: "http://somewebsite.com/somefile.pdf")
    //Create a URL request
    let urlRequest = NSURLRequest(URL: yourURL!)
    //get the data
    let theData = NSURLConnection.sendSynchronousRequest(urlRequest, returningResponse: nil, error: nil)

    //Get the local docs directory and append your local filename.
    var docURL = (NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)).last as? NSURL

    docURL = docURL?.URLByAppendingPathComponent( "myFileName.pdf")

    //Lastly, write your file to the disk.
    theData?.writeToURL(docURL!, atomically: true)
})

而Swift中第二个问题的答案是:

//Getting a list of the docs directory
let docURL = (NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).last) as? NSURL

//put the contents in an array.
var contents = (NSFileManager.defaultManager().contentsOfDirectoryAtURL(docURL!, includingPropertiesForKeys: nil, options: NSDirectoryEnumerationOptions.SkipsHiddenFiles, error: nil))
//print the file listing to the console
println(contents)


 类似资料:
  • 在iOS中加载gif图片的类库。使用ImageIO解析Gif文件,使用QuzrtzCore完成gif动画的显示。能够控制gif图片中每帧的播放时间。 作者说:本工具类最大的特点就是考虑到Gif中每一帧画面的显示时间,网上现有的大部分Gif工具类都没有考虑到这一点,所以播放Gif的时候总是会以同一个速度播放。 [Code4App.com]

  • 我正在尝试合并我的应用程序中的两个pdf文件。但我的应用程序在创建组合文件引用的时候不断出现故障。(参见代码中的注释)。有人能给我指一下这里的正确方向吗?谢了。

  • 问题内容: 我尝试使用以下代码下载pdf文件。它存储在应用程序数据中。但是我需要在iPhone的 “文件” 文件夹中显示下载的pdf 。 可能吗?? 问题答案: 这是下载任何文件并保存到“照片”(如果是图像文件)或“文件”(如果是pdf)的方法

  • 我的问题是, 我必须使用递归来读入字符并保存它们。如果读入字符是“x”或“x”,则我目前键入的所有字符都应在显示屏上向后显示。 f、 e。 字符1:a 字符2:c 字符3:7 字符4:x “单词”是:x7ca 如何在不使用数组的情况下“保存”递归字符并向后打印它们? 谢谢你I. A.