Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
0 oy
470 kez görüntülendi
ios development kategorisinde tarafından

Web'ten resim yüklemek için genel olarak şu kodları kullanıyorum:
let imageURL = "https://pbs.twimg.com/media/CG_1z-CU8AA176B.jpg"

let url = NSURL(string: imageURL)

let urlRequest = NSURLRequest(URL: url)

            NSURLConnection.sendAsynchronousRequest(urlRequest, queue: NSOperationQueue.mainQueue(), completionHandler: { response, data, error in

if error != nil  {

//hata varsa...

}else{

// herşey yolundaysa...

}

})

Şimdi şöyle bir sorunla karşılaşıyorum. Eğer görüntülemek istediğim resmin adresinde bir hata varsa, resmi çektiğim sayfa 20x20 pixel boyutunda boş bir resim döndürüyor. Bu durumda da yukardaki kontrollerimde herşey yolunda sonucu çıkıyor. Ama resim gözükmüyor. Bunun için daha farklı nasıl bir kontrol yapılabilir acaba ?

imageURL kısmındaki adresi  şu şekilde https://pbs.twimg.com/media/CG_1z-CU8AA176B33.jpg değiştirip denerseniz tam olarak ne demek istediğimi daha iyi anlatmış olacağım :)

1 cevap

+1 oy
tarafından
tarafından seçilmiş
 
En İyi Cevap

httpresponse status kodunu kontrol et. 200 dönüyorsa imajı göster.

   let imageURL = "https://pbs.twimg.com/media/CG_1z-CU8AA176B.jpg"

    let url = NSURL(string: imageURL)

    let urlRequest = NSURLRequest(URL: url!)

    NSURLConnection.sendAsynchronousRequest(urlRequest, queue: NSOperationQueue.mainQueue(), completionHandler: { response, data, error in

        if error != nil  {
            //hata varsa...
        }else{

            // response status kodunu kontrol etmen yeterli
            if let httpResponse:NSHTTPURLResponse = response as? NSHTTPURLResponse {
                if httpResponse.statusCode == 200 {
                    println("success")
                } else {
                    println("failed")
                }
            }

            // herşey yolundaysa...
        }

    })
tarafından
Süper. Çok teşekkür ederim yardımınız için.
tarafından
println("failed")
kısmında httpResponse içindeki hatanın sebebini yazdırmak istedim ama nedense Türkçe yazamadı. İngilizce olarak "not found" diye dönüyor. Bu normal mi bana mı özel :)

NSHTTPURLResponse.localizedStringForStatusCode(httpResponse.statusCode)
...