2015-12-30 4 views
0

У меня есть запрос Alamofire, который предположительно загружает файл, но он не будет выполнять код сам. Вот Alamofire код:Alamofire не выполняет код в Swift

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, но я нашел только одно сообщение, связанное с этой темой, которое было указано выше.

Спасибо, Jero

+0

все нормально работает, проверьте правильно – aaisataev

ответ

1

Прежде всего, я ставлю свой код, чтобы работать в демонстрационном Alamofire нашел результаты погонных и то, что вы сказали, это то же самое, как показано на рисунке ниже: 0 Hi 2015-12-30 14:31:29.873 iOS Example[3966:142688] App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.

По в строке вы увидите, что проблема: App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.

решение выглядит следующим образом (в файле проекта «info.plist»): In project's "info.plist" file to add a "NSAppTransportSecurity" dictionary, an element is added in the dictionary.Key for "NSAllowsArbitraryLoads", the value is: YES, make it back to the HTTP protocol for the time being.

Решение проблемы ссылки:

Transport security has blocked a cleartext HTTP

Окончательные результаты выглядят следующим образом:

0 Hi 1 file:///Users/yangshebing/Library/Developer/CoreSimulator/Devices/151CB429-29B3-46D0-AFF5-37D5B8D9E4FC/data/Containers/Data/Application/756A32D1-64C5-48CF-B652-D3009D80780D/Documents/71w4o.html blah 2

Конкретные проблемы вы можете перейти запросить официальную документацию яблока, запрос iOS9 ATS проблемы адаптации ,

Надежда может вам помочь!

+0

Спасибо. Хотя ваш ответ не помог мне решить проблему, потому что моя проблема была другой, я ценю ваши усилия, чтобы проверить и объяснить проблему. Моя программа на самом деле сталкивалась с другой ошибкой до того, как были отображены команды печати. Это остановило программу. Теперь я добавил цикл while, чтобы дождаться завершения загрузки, прежде чем продолжить, теперь это работает. Тем не менее, ваши ответы могут быть полезны для будущих посетителей этой темы. Спасибо. –