JSONを返すAPIを呼び出すフレームワークがあります。問題は、NSURLSessionを使用し、DataTaskWithRequestを呼び出してデータを取得するSDK内の関数があることです。問題は、私の関数は、データが適切にフェッチされる前でも値を返すことです。 DataTaskWithRequestでCompletion Handlerを使用しようとしましたが、現在、whileループを使用してデータを受信するまで待機しています。 、それは委任とプロトコルを使用してiOSのdataTaskWithRequestからデータを返すSwift
コード
public func getDetails() -> AnyObject {
if Reachability.isConnectedToNetwork()
{
received = false
let baseUrl = "API_URL Here"
let url = NSURL(string: baseUrl)
let request = NSURLRequest(URL: url!)
let session = NSURLSession.sharedSession()
print("Starting the connection")
let task = session.dataTaskWithRequest(request, completionHandler : {
(data, response, error) in
//Proper JSON Form
do
{
self.JSON = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments)
}
catch
{
print("Error")
return
}
self.received = true
})
task.resume()
print("Going through the loop")
while(!received)
{
print("Searching")
}
print(JSON)
return JSON
}
else
{
let alert = UIAlertView(title: "No Internet Connection", message: "Make sure your device is connected to the internet.", delegate: nil, cancelButtonTitle: "OK")
alert.show()
return 0
}
}
あなたのコードを投稿してください... –