2017-02-02 17 views
0

Я прочитал пару подобных вопросов, но ни один из них не работал на меня. Ну, я пытаюсь показать разные изображения в списке и сохранить эти изображения в кеше. Я получаю сообщение об ошибке iconView.sd.Невозможно вызвать звонок из SDWebImage

import UIKit 
import SDWebImage 

class TableViewCell: UITableViewCell { 

var item: ItemRealm? { 
    didSet { 
     if item == nil { 
      iconView.image = nil 
      itemTitleLabel.text = "Test" 
      itemDescLabel.text = "Some description" 
     } else { 
      // TODO: Implement item sets 
      iconView.sd_setImage(with: NSURL(string: (item?.icon)!), 
           placeholderImage: UIImage(named: "placeholder.png"), 
           completed: { (image: UIImage!, error: NSError!, cachetype: SDImageCacheType, imageURL: NSURL!) in 

              }) 
      itemTitleLabel.text = item?.name 
      itemDescLabel.text = item?.desc 

     } 
    } 
} 

@IBOutlet weak var iconView: UIImageView! 
@IBOutlet weak var itemTitleLabel: UILabel! 
@IBOutlet weak var itemDescLabel: UILabel! 

override func awakeFromNib() { 
    super.awakeFromNib() 
    iconView.layer.cornerRadius = 4 
} 

override func prepareForReuse() { 
    super.prepareForReuse() 
    self.item = nil 
} 

} 

Error : TableViewCell.swift:22:26: Cannot invoke 'sd_setImageWithURL' with an argument list of type '(NSURL?, placeholderImage: UIImage?, completed: (UIImage!, NSError!, SDImageCacheType, NSURL!) ->())'

Иконы из списка (журнал):

; icon: Optional("http://192.168.1.101:8080/api/items/0/icon.png") 
; icon: Optional("http://192.168.1.101:8080/api/items/1/icon.png")... 

ответ

0

Проблема может быть из-за использования старых NS-типов, которые получили замененных в Swift3 и получать преобразованных к новым Datatypes теперь Swift3 автоматически.

iconView.sd_setImage(with: URL(string: item!.icon), 
     placeholderImage: UIImage(named: "placeholder.png"), 
        options: .highPriority) { image, error, cacheType, imageURL in 
} 
+0

Теперь я получаю сообщение об ошибке: Неоднозначное использование 'sd_setImage'. – Vuko

+0

Просто попробовал и испытал то же самое, даже когда я правильно определяю типы, как в моем отредактированном ответе. Это работает только для меня, когда я добавляю аргумент 'options:'. – Kie

+0

Okey. Большое спасибо. Где добавить следующие параметры: аргумент Если я могу спросить? – Vuko

1

Это работает для меня. Не забудьте добавить опции: аргумент вроде этого.

iconView.sd_setImage(with: URL(string: item!.icon), placeholderImage: 
     UIImage(named: "placeholder.png"), options: SDWebImageOptions(), 
     completed: { (image: UIImage?, error: Error?, cachetype: SDImageCacheType, 
    imageURL: URL?) in 
      }) 

 Смежные вопросы

  • Нет связанных вопросов^_^