我正在构建一个应用程序,它会在表格视图中列出一堆名人。它将包括他们的图像和他们的Twitter用户名。我在编辑器中没有错误,但是当我运行我的应用程序时,我收到以下消息:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImageView _isResizable]: unrecognized selector sent to instance
我不确定为什么我会收到此消息以及我可以采取哪些措施来解决此问题...
以下是我的ViewController中的代码:
class CelebListViewController: UITableViewController {
let celebs = Celeb.celebsFromBundle()
override func viewDidLoad() {
super.viewDidLoad()
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return celebs.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: CelebListViewCell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! CelebListViewCell
//Keep
let celeb = celebs[indexPath.row]
cell.setCell(celeb.twitter, imageName: celeb.imageName)
return cell
}
}
以下是我的ViewCell代码:
class CelebListViewCell: UITableViewCell {
@IBOutlet weak var pic: UIImageView!
@IBOutlet weak var handle: UILabel!
func setCell(handleText: String, imageName: String) {
self.handle.text = handleText
self.pic.image = UIImage(named: imageName)
}
}
我觉得这个问题是由于我在某处使用UIImage而不是UIImageView引起的,但我找不到它。
无论如何,谢谢你的帮助。
P.S。我有一个名人对象,我正在设置所有数据。以下是代码:
struct Celeb {
let name: String
let twitter: String
let imageName: String
let image: UIImage
init(name: String, twitter: String, image: UIImage, imageName: String) {
self.name = name
self.twitter = twitter
self.image = image
self.imageName = imageName
}
static func celebsFromBundle() -> [Celeb] {
var celebs = [Celeb]()
guard let path = NSBundle.mainBundle().pathForResource("celebs", ofType: "json"),
data = NSData(contentsOfFile: path) else {
return celebs
}
do {
let rootObject = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments)
guard let celebObjects = rootObject["celebs"] as? [[String: AnyObject]] else {
return celebs
}
for celebObject in celebObjects {
if let name = celebObject["name"] as? String,
twitter = celebObject["twitter"] as? String,
imageName = celebObject["image"] as? String,
image = UIImage(named: imageName) {
let celeb = Celeb(name: name, twitter: twitter, image: image, imageName: imageName)
celebs.append(celeb)
}
}
} catch {
return celebs
}
return celebs
}
}
答案 0 :(得分:1)
好的,这就是问题所在。你有两个插座连接,图像和图片。删除“图片”,因为在您的代码中您正在使用“pic”。 当你有多个连接时,Xcode会感到困惑。 希望它有所帮助!
P.S。要删除“图像”连接,只需点击旁边的“X”按钮即可。