我使用以下代码将文件从AWS S3下载到我的NSTemporaryDirectory:
let downloadFilePath = (NSTemporaryDirectory() as NSString).stringByAppendingPathComponent("FILENAME")
let downloadingFileURL = NSURL(fileURLWithPath:downloadFilePath)
let downloadRequest: AWSS3TransferManagerDownloadRequest = AWSS3TransferManagerDownloadRequest();
downloadRequest.bucket = "Bucketname";
downloadRequest.key = "FileName";
downloadRequest.downloadingFileURL = downloadingFileURL;
file = .json文件 应用程序内容全部保存在JSON文件中,因此我需要从NSTemporaryDirectory重定向文件,以便内容显示在应用程序上。
是否有人知道解析函数以便将我的JSON文件中的数据加载到应用程序中?
谢谢
答案 0 :(得分:0)
您无法修改主捆绑包,因此无法使用。
您可以控制几个目录,例如主目录,应用程序支持目录,缓存目录或可能的文档目录。
答案 1 :(得分:0)
正如gnasher729所说,你无法修改主要包本身,但没有理由在这里。您无需移动文件即可显示该文件。您可以从临时目录中读取。它位于您的应用程序沙箱中,并没有什么特别之处(它甚至不能为您清理,所以如果您需要,那么这是您的责任。)< / p>
临时目录未备份,因此如果您需要,则应将其移至文档目录。如果您想这样做,请参阅NSFileManager moveItemAtPath:toPath:error:
(或者首先下载到您的文档目录中)。
答案 2 :(得分:0)
我明白了。
下载文件后:
let downloadFilePath = (NSTemporaryDirectory() as NSString).stringByAppendingPathComponent("FILENAME")
let downloadingFileURL = NSURL(fileURLWithPath:downloadFilePath)
let downloadRequest: AWSS3TransferManagerDownloadRequest = AWSS3TransferManagerDownloadRequest();
downloadRequest.bucket = "Bucketname";
downloadRequest.key = "FileName";
downloadRequest.downloadingFileURL = downloadingFileURL;
我必须提交下载请求 - 如下所示:
// submit download request
let transferManager: AWSS3TransferManager = AWSS3TransferManager.defaultS3TransferManager();
print("Downloading started, please wait...");
transferManager.download(downloadRequest).continueWithExecutor(AWSExecutor.defaultExecutor(), block: { (task) -> AnyObject? in
print("TASK:::::: \(task)");
if (task.error != nil){
print("Error Downloading");
}else{
self.readFile()
print("Download complete");
}
return nil;
}, cancellationToken: nil)
}
使用AlamoFire和SwiftyJSON创建一个将通过临时目录解析JSON文件的函数:
func readFile() {
// JSON parsing step (from temporary directory)
let path = (NSTemporaryDirectory() as NSString).stringByAppendingPathComponent("FILENAME")
do {
let readFile:NSString? = try NSString(contentsOfFile: path, encoding: NSUTF8StringEncoding)
let json = JSON.parse(readFile as String!)
for (_, subJson) in json["FILECONTENT"] {
let version = subJson["FILECONTENT"].string
let newsletter = Edition(Version: version!)
self.editions.append(ARRAYNAME!)
}
dispatch_async(dispatch_get_main_queue()) {
self.tableView.reloadData()
}
//print(readFile)
} catch {
}
}
这将在运行时显示应用程序上的文本。 我想让图像现在做点什么。