2016-04-09 23 views
1

Alamofire kullanarak XCode 7.3 oyun alanında bir uyumsuz istekte bulunmaya çalışıyorum. Bu yanıtta belirtildiği gibi needsIndefiniteExecution = true ve finishExecution() olmak üzere iki ek ifade ekledim: https://stackoverflow.com/a/33536290/603268.XCode oyun alanı async kodunda kilitleniyor

import Foundation 
import Alamofire 
import XCPlayground 

XCPlaygroundPage.currentPage.needsIndefiniteExecution = true 

print("Before request") 

Alamofire 
    .request(.GET, "http://jsonplaceholder.typicode.com/users") 
    .responseString { res in 
     print(res) 
     XCPlaygroundPage.currentPage.finishExecution() 
    } 
    //.resume() - adding this did not help 

Ayrıca oyun yürütme modunu elkitabına da ayarlıyorum.

İlk kez her şey iyi çalışıyor, yanıt yazdırılıyor ve oyun alanı yürütmeyi bitiriyor.

Ancak, ikinci kez çalıştırırsam, herhangi bir çıktıyı basar ve yazdırmaz (hatta "Başlatma isteği" yok). Tekrar çalışması için XCode'u yeniden başlatmalıyım.

+0

nasıl ikinci kez çalıştırılır? – dasdom

cevap

0

Sen kaldırmak için deneyebilirsiniz:

XCPlaygroundPage.currentPage.finishExecution() 
+0

Evet, bu sorunu ardışık koşular ile çözüyor, ama onun dezavantajları da var - ya oyun alanını 30 saniye çalıştırıyor ya da el ile durdurmak zorundayım (burada açıklandığı gibi http://stackoverflow.com/a/24066317/ 603.268). Daha temiz bir çözüm bekliyordum –