我正在努力学习Swift所以这个问题可能有点愚蠢,请跟我说。
我有一个初始化属性的函数 -
private func loadSampleMeals(){
let photo1 = UIImage(named: "meal1")
let photo2 = UIImage(named: "meal2")
let photo3 = UIImage(named: "meal3")
guard let meal1 = Meal(name: "meal1", photo: photo1, rating: 4) else {
fatalError("Unable to initialize meal1")
}
guard let meal2 = Meal(name: "meal2", photo: photo2, rating: 3) else{
fatalError("Unable to initialize meal2")
}
guard let meal3 = Meal(name: "meal3", photo: photo3, rating: 1) else{
fatalError("Unable to initialize meal3")
}
meals += [meal1, meal2, meal3]
}
然后我尝试将它们加载到表格单元格中,如 -
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cellIdentifier = "MealTableViewCell"
guard let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as? MealTableViewCell else {
fatalError("The dequeued cell is not an instance of MealTableViewCell.")
}
let meal = meals[indexPath.row]
cell.nameLabel.text = meal.name
cell.photoImageView.image = meal.photo // <- error here
cell.ratingControl.rating = meal.rating
return cell
}
当我在上面的代码中分配图像属性时,我得到以下错误 -
[UITableViewCellContentView setImage:]:发送到的无法识别的选择器 实例0x7fa19ed019a0 2018-05-18 14:12:28.845232 + 0530 FoodTracker [2440:67077] ***因未捕获的异常终止应用程序 &#39; NSInvalidArgumentException&#39;,原因:&#39; - [UITableViewCellContentView setImage:]:无法识别的选择器发送到实例0x7fa19ed019a0&#39;
我添加了图片,它们是.jpg格式,名称为meal1
,meal2
和meal3
。但不知道我做错了什么。有趣的是,我在助攻中有另一张图像 - defaultPhoto
,如果我注释掉上面的行会引发错误,我的代码运行正常,模拟器会显示defaultPhoto
图像。
这是我的资产的样子 -
请帮忙吗?如果我可以添加更多详细信息,请与我们联系。
修改
我的网点看起来像这样 -
class MealTableViewCell: UITableViewCell {
//MARK: Properties
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var photoImageView: UIImageView!
@IBOutlet weak var ratingControl: RatingControl!
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
问题出在photoImageView
上。其他两个网点工作正常。
答案 0 :(得分:1)
请检查您的IBOutlet是否与您的手机绑定了UIImageView。
答案 1 :(得分:1)
您的问题是您错误地将UITableViewCell
的contentView连接为名为UIImageView
的{{1}},其中肯定没有会导致崩溃的成员图片
答案 2 :(得分:1)
答案 3 :(得分:0)
[UITableViewCellContentView setImage:]: unrecognized selector sent to instance
表示您单元格中的photoImageView插件并不是真正的UIImageView。出于某种原因,photoImageView插座似乎指向了单元格的内容视图。我的猜测是你错误地将单元格的内容视图连接到这个插座而不是图像视图。
此外,它有时有助于做一个&#34;清洁&#34;在XCode中发生此类错误时。