Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.

Web'den Resim Yükleme

0 oy
45 kez görüntülendi
16, Haziran, 2015 ios development kategorisinde burhanaksendir tarafından soruldu

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
16, Haziran, 2015 yasin tarafından cevaplandı
16, Haziran, 2015 burhanaksendir 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...
        }

    })
16, Haziran, 2015 burhanaksendir tarafından yorumlandı
Süper. Çok teşekkür ederim yardımınız için.
16, Haziran, 2015 burhanaksendir tarafından yorumlandı
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)
...