Swift I';我的图像没有错误?

Swift I';我的图像没有错误?,swift,cocoa-touch,core-data,uiimageview,iboutlet,Swift,Cocoa Touch,Core Data,Uiimageview,Iboutlet,我遇到致命错误:在展开可选值时意外发现nil imagedata不是nil,它的值为2604750字节 我不知道为什么它显示这个错误,因为我可以看到img1是零为什么? 任何评论 @IBOutlet var img1: UIImageView! @IBOutlet var img2: UIImageView! // in viewWillAppear I gave it a default image self.img1.image = UIImage(named: "dummy.png" )

我遇到致命错误:在展开可选值时意外发现nil imagedata不是nil,它的值为2604750字节 我不知道为什么它显示这个错误,因为我可以看到img1是零为什么? 任何评论

@IBOutlet var img1: UIImageView!
@IBOutlet var img2: UIImageView!
// in viewWillAppear I gave it a default image
self.img1.image = UIImage(named: "dummy.png" )
self.img1.image = UIImage(named: "dummy.png" )

// i changed to send the nsmanagedobject but it's still same error

func setimage(person: NSManagedObject){
let data: NSData = NSData()
if person.valueForKey("picture") as! NSData == data{
if person.valueForKey("tag") as! Int == 1 {
img1.image = UIImage(named: "dummy" )
}else if person.valueForKey("tag") as! Int == 2 {
img2.image = UIImage(named: "dummy")

}}
else{
if person.valueForKey("tag") as! Int == 1 {
img1!.image = UIImage(data: person.valueForKey("picture") as! NSData )
}else if person.valueForKey("tag") as! Int == 2 {
img2.image = UIImage(data: person.valueForKey("picture") as! NSData )

}
}

}

我认为这和安德烈的建议是一样的。您的图像插座可能未与视图连接。

您的插座为零,这可能是由于以下原因造成的

  • 它们尚未在界面生成器中连接
  • 在实例化它们之前,例如在调用viewDidLoad()之前,您正在访问它们
    所以,你有一个简单的错误。事实上,你的销售渠道是零。但是,这不是因为您没有在情节提要中分配它们,而是因为在
    ViewController
    的不同实例上调用了
    setimage

    在第二个视图控制器中有一个属性
    view1
    ,该属性声明为:

    let view1: ViewController = ViewController()
    
    这将创建
    ViewController
    的新实例。然后,当您调用
    view1.setimage
    时,会发生崩溃,因为此实例的插座未连接

    第二个视图控制器中的属性应为

    var view1: ViewController!
    
    ViewController
    imageTapped
    方法中,您应该修改代码,使其具有以下行:

    view.view1 = self
    

    强制展开可能并不理想,但只要您确保在实例化第二个视图控制器时设置了
    view1
    属性,强制展开就可以工作。

    您的UIImageView为nil(img1),那么您认为我应该怎么做@Davidskrundzinitialize在您尝试设置其图像之前对其进行初始化。在代码的某个地方,您应该这样做:img1=UIImageView(),我这样做了,并使用项目中的默认图像初始化了它,但它仍然显示错误@Woodstock@Fahad发布实际代码和新错误消息
    @IBOutlet var img1:UIImageView@IBOUTLE var img2:UIImageView已连接很抱歉打扰您,但可以在Interface Builder中检查连接,因为我以前遇到过问题,甚至当我的代码显示为@IBOutlet时,在连接中显示它们未连接,因此我必须重新连接它们。我已删除并重新连接,但仍然存在相同的错误,我不知道发生了什么@JuValencia@Fahad将代码上传到GitHub上。一定有一些容易修复的错误,但如果不运行代码就很难发现它。我将其作为zip文件夹上传,它位于@andriygordidychuki下。非常感谢。现在它工作正常了,非常感谢@安德烈·科迪丘克