gpt4 book ai didi

ios - Alamofire 无法在 Swift 中正确执行

转载 作者:行者123 更新时间:2023-11-29 01:21:37 26 4
gpt4 key购买 nike

我有一个假设要下载文件的 Alamofire 请求,但它不会自行执行代码。这是 Alamofire 代码:

var testNumbers: Int = 0
var testString: String = "Hi"
Alamofire.download(.GET, "http://www.sayweee.com/admin_groupbuy/export_deal_orders/71w4o?format=csv") { temporaryURL, response in

let fileManager = NSFileManager.defaultManager()
let directoryURL = fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0]
let pathComponent = response.suggestedFilename

print("1")
testNumbers = 1

print(directoryURL.URLByAppendingPathComponent(pathComponent!))

print("blah")
testString = "blah"
print("2")
testNumbers = 2

return directoryURL.URLByAppendingPathComponent(pathComponent!)

}
print(testNumbers)
print(testString)

执行这段代码会在控制台打印:

 0
Hi

我很确定这意味着 {} 中的代码没有得到执行。我读过另一本关于这个主题的书,了解到 Alamofire 是“异步的”,正如他们在 this post 中所说的那样.我试图摆脱 viewDidLoad() 方法和 viewDidAppear() 方法中的所有内容,并确保没有任何无限循环。即使在那之后,结果也是一样的。关于为什么会发生在我身上的任何想法或建议?我尝试查看此处和 Google,但只找到一篇与该主题相关的帖子,即上面链接的那篇。

最佳答案

首先我把你的代码放到Alamofire Demo中运行发现运行结果和你说的是一样的,如下图:
0
你好
2015-12-30 14:31:29.873 iOS 示例[3966:142688] 应用程序传输安全已阻止明文 HTTP (http://) 资源加载,因为它不安全。可以通过应用程序的 Info.plist 文件配置临时异常(exception)。

根据提示你会看到问题:
应用程序传输安全性已阻止明文 HTTP (http://) 资源加载,因为它不安全。可以通过应用程序的 Info.plist 文件配置临时异常(exception)。

解决办法如下(在项目文件“info.plist”中):
在项目的“info.plist”文件中添加一个“NSAppTransportSecurity”字典,字典中添加一个元素。Key为“NSAllowsArbitraryLoads”,值为:YES,暂时回到HTTP协议(protocol)。

问题解决链接:

Transport security has blocked a cleartext HTTP

最终结果如下:


0
你好
1个
文件:///Users/yangshebing/Library/Developer/CoreSimulator/Devices/151CB429-29B3-46D0-AFF5-37D5B8D9E4FC/data/Containers/Data/Application/756A32D1-64C5-48CF-B652-D3009D80780D/Documents/71w4o.html
废话
2个

具体问题可以去查询苹果官方文档,查询iOS9 ATS适配问题。

希望能帮到你!

关于ios - Alamofire 无法在 Swift 中正确执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34522528/

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