2016-07-13 28 views
0

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: enter image description here

Bildanschlüsse: enter image description here

+0

Überprüfen Sie den Schnittstellen-Builder, stellen Sie sicher, dass keine nicht verwendeten/doppelten Verbindungen vorhanden sind. – SahandTheGreat

+0

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 –

+0

Nein, eine Verbindung ist, wenn Sie den Code ziehen, um einen zu machen Auslauf. – SahandTheGreat

Antwort

1

Ok, das ist das Problem. Sie haben zwei Ausgangsanschlüsse, Bild und Bild. Löschen Sie "image", weil Sie in Ihrem Code "pic" verwenden. Xcode wird verwirrt, wenn Sie mehrere Verbindungen haben. Hoffe es hilft!

P.S. Um die "Bild" -Verbindung zu löschen, drücken Sie einfach die "X" -Taste daneben.

+0

Du bist ein toller Mann –

+0

Noooo Problem ... – SahandTheGreat

Verwandte Themen