Кто-нибудь знает, что может быть не так с этим?
Каждый раз, когда я тестирую в симуляторе, запрос просто возвращает значение «Пожалуйста, введите имя».
Это похоже на то, что запрос https вообще не происходит.
import UIKit
class AgeLookUpViewController: UIViewController {
@IBOutlet weak var celebrityTextField: UITextField!
@IBOutlet weak var resultLabel: UILabel!
@IBAction func getAge(_ sender: Any) {
if let url = URL(string: "https://en.wikipedia.org/wiki/" + celebrityTextField.text!.replacingOccurrences(of: " ", with: "_")) {
let request = NSMutableURLRequest(url: url)
let task = URLSession.shared.dataTask(with: request as URLRequest) { data, response, error in
var message = ""
if error != nil {
print(error!)
} else {
if let unwrappedData = data {
let dataString = NSString(data: unwrappedData, encoding: String.Encoding.utf8.rawValue)
var stringSeparator = "<span class=\"noprint ForceAgeToShow\">(age "
if let contentArray = dataString?.components(separatedBy: stringSeparator) {
if contentArray.count > 1 {
stringSeparator = ")</span>"
let newContentArray = contentArray[1].components(separatedBy: stringSeparator)
if newContentArray.count > 1 {
message = newContentArray[1]
print(message)
}
}
}
}
}
if message == "" {
message = "Please Enter a Name"
}
DispatchQueue.main.sync(execute: {
self.resultLabel.text = message
})
}
task.resume()
} else {
resultLabel.text = "Age is unavailable at this time. Please try again later."
}
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
self.view.endEditing(true)
}
Возраст человека должен возвращаться в результате в метке результата.