-2
次のコードは間違っていることは知っていますが、私は自分の意図を示したいと思います。 複数回呼び出されるメソッドを記述したいと思います。このフェッチ方法は、成功したかどうかを教えてくれます。関数がインターネットからフェッチして値を返します
func fetch(url: String) -> Bool? {
let defaultSession = URLSession(configuration: URLSessionConfiguration.default)
let url = URL(string: url)
var bool: Bool? = nil
if let url = url {
defaultSession.dataTask(with: url, completionHandler: { data, response, error in
if let error = error {
print(error)
return
}
DispatchQueue.main.async {
if let httpResponse = response as? HTTPURLResponse, 200...299 ~= httpResponse.statusCode, let data = data {
// handle the data.
bool = true
} else {
print("something really wrong")
bool = false
}
}
}).resume()
}
return bool
}
if let bool = fetch(url: "https://www.google.com.hk/webhp?hl=en&sa=X&ved=0ahUKEwimubK7r-HVAhVFmZQKHazMAMMQPAgD"), bool == true {
// if it is true, I can go for next step.
}
"複数フェッチ"とは何ですか?私はURLが一度使われているのを見るだけです。また 'var bool:Bool? = nilである。オプションはデフォルトで 'nil'です。 'var bool:Bool? 'と書くことができます。 – Honey
私はどちらが間違っているかを知っています。私は 'var'宣言時にはデフォルト値がnilであることを知っています。それは傷です。 –
あなたが知っている部分が間違っているかは不明です。それ以外の場合は修正します。何度も何度もフェッチするという意味ですか? – Honey