Я новичок в Swift и задаюсь вопросом. У меня есть следующий блок для кода для запуска задачи. Однако этот блок задач не выполняется, когда я запускаю из Xcode 8.2.1. Что я делаю не так?Swift 3.0: блок задач не выполнен
// Execute HTTP Request
let task = URLSession.shared.dataTask(with: request as URLRequest) {
(data, response, error) in
// Check for error
if error != nil
{
print("error=\(error)")
return
}
// Print out response string
let responseString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
print("responseString = \(responseString)")
// Convert server json response to NSDictionary
do {
if let convertedJsonIntoDict = try JSONSerialization.jsonObject(with: data!, options: []) as? NSDictionary {
// Print out dictionary
print(convertedJsonIntoDict)
// Get value by key
let sessionId = convertedJsonIntoDict["sessionId"] as? String
print(sessionId!)
}
} catch let error as NSError {
print(error.localizedDescription)
}
}
task.resume()
Требуется ли завершение ремонта? Я запускаю это внутри файла main.swift.
Кажется, что ваша программа заканчивается до завершения задачи. Предоставьте больше контекста для кода. –
Как и в сторону, и полностью не связанный с вашим вопросом, ваш код будет упрощен, если вы будете акцинировать ссылки «NSString», «NSURLRequest» и «NSError». Вместо этого используйте 'String',' URLRequest' и 'Error'. Тогда никакое кастинг не требуется, а «кодирование» проще. – Rob
@Rob thats right, я не вижу ни одной ошибки печати или ответа String в консоли после запуска. – gooner