2015-07-29 7 views
1

Im, пытающийся загрузить изображение с URL-адреса и сделать его образ tableviewcell для каждой ячейки в виде таблицы. Программа загружает содержимое каждой ячейки, а затем использует alamofire для загрузки изображения в соответствии с идентификатором, переданным с сервера.alamofire, загружая несколько изображений

Когда я использую код ниже, первое изображение всегда совпадает со вторым, и я не могу понять, почему, когда я добавляю больше ячеек, они работают отлично. Я только начал использовать alamofire сегодня, поэтому я, возможно, пропустил что-то очевидное, извините заранее, если это так.

 for result in resultsAsArray { 

       if let resultDict = result as? NSDictionary { 

        let cell = UITableViewCell(style: .Value1, reuseIdentifier: "identifer") 
        cell.textLabel?.text = resultDict.objectForKey("name") as? String 

        let id = (resultDict.objectForKey("productId") as! String).toInt()! 
        cell.tag = id 

        cell.imageView?.image = UIImage(named: "placeholder") 

        let image = request(.GET, 
         "http://www.website.com/\(id).png").response() { 

         (_, _, data, _) in 

          println("loading image for \(id)") 

          let image = UIImage(data: data! as NSData) 
          cell.imageView!.image = image 

        } 

        products.append(cell) 

        (view.viewWithTag(1) as! UITableView).reloadData() 

       } 

      } 
+0

Также, когда я удаляю все изображения с моего сервера, они все еще загружаются в app - возможно, проблема связана с сервером? –

+1

В целом, весь этот подход обратный. Вы не должны создавать массив ячеек с изображениями. Единственное место, где вы должны создавать экземпляры ячеек, - это «cellForRowAtIndexPath», и вы должны деактивировать ячейки, а не создавать свои собственные. И обычно люди будут использовать ленивую загрузку изображений, а не загружать все изображения для всей таблицы (перезагрузка таблицы для каждого). – Rob

+0

ладно, спасибо, я всегда старался сделать код «правильным», насколько это возможно, так что делайте эти изменения. –

ответ

0

Я определил вопрос является сторона сервера, когда я изменить изображения они не изменились на сервере мгновенно - alamofire работает нормально

  • я изначально сделал первое сотовое изображение изображения это должно быть для номера 2, после того как я его переместил, alamofire кэшировал его, чтобы он всегда показывал изображение, предназначенное для номера 2