Ich baue eine App, die eine Reihe von Prominenten in einer Tabellenansicht auflisten wird. Es enthält ihr Bild und ihren Twitter-Benutzernamen. Ich erhalte keine Fehler im Editor, aber wenn ich meine app laufen, ich die folgende Meldung:Fehler beim Versuch, Bilder in der Tabellenansicht anzuzeigen
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImageView _isResizable]: unrecognized selector sent to instance
Ich bin nicht sicher, warum ich diese Botschaft immer bin und was kann ich tun, um es zu beheben ...
hier ist der Code von meinem 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
}
}
Und hier ist der Code von meinem 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)
}
}
Ich habe das Gefühl, dass dieses Problem dadurch verursacht wird, dass ich irgendwo UIImage anstelle von UIImageView verwende, aber ich kann es nicht finden.
Wie auch immer, danke für die Hilfe.
P.S. Ich habe ein Prominentenobjekt, wo ich alle Daten aufstelle. Hier ist der Code für das nur für den Fall:
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
}
}
hier auch mein Storyboard-Dokument Umriss ist, ob das hilft:
Überprüfen Sie den Schnittstellen-Builder, stellen Sie sicher, dass keine nicht verwendeten/doppelten Verbindungen vorhanden sind. – SahandTheGreat
Nein, ich glaube nicht, dass ich irgendwelche ... Ich habe einen Screenshot meines Storyboard Dokument Gliederung in meiner ursprünglichen Frage hinzugefügt, wenn Sie einen Blick werfen möchten –
Nein, eine Verbindung ist, wenn Sie den Code ziehen, um einen zu machen Auslauf. – SahandTheGreat