Ios Xcode 6.1-结构实例控制台错误

Ios Xcode 6.1-结构实例控制台错误,ios,swift,Ios,Swift,我是编程界的初学者,我选择“Swift”作为我的第一种编程语言。到目前为止一切都很顺利,但现在我正在学习结构和实例,如何更新它们等等,我遇到了神秘的控制台错误,我无法继续我的项目 所以问题来了 我创建了名为“Tiger.swift”的结构。该结构有一些属性,如名称、年龄等。在“viewController”中,我创建了一个名为myTiger的新变量,并尝试更新它的属性,在控制台中创建println命令后,出现了一些奇怪的情况。它编译并告诉我“构建成功了”,但在控制台中显示类似这样的内容 “我的老

我是编程界的初学者,我选择“Swift”作为我的第一种编程语言。到目前为止一切都很顺利,但现在我正在学习结构和实例,如何更新它们等等,我遇到了神秘的控制台错误,我无法继续我的项目

所以问题来了

我创建了名为“Tiger.swift”的结构。该结构有一些属性,如名称、年龄等。在“viewController”中,我创建了一个名为myTiger的新变量,并尝试更新它的属性,在控制台中创建println命令后,出现了一些奇怪的情况。它编译并告诉我“构建成功了”,但在控制台中显示类似这样的内容

“我的老虎的名字是:老虎,它的年龄是3岁,它的年龄是3岁,它的形象是可选的()

这个奇怪的东西是“可选的”。因为如果我以后想更新实例,它不会编译并向我显示:

“我的老虎的名字是:跳虎,它的年龄是3岁,它的年龄是3岁,它的形象是可选的() 致命错误:在展开可选值时意外发现nil (lldb)”

这里有一个指向Git repository()的链接,以防没有一个快速的解决方案或我无意中犯下的一个小错误

我将感谢你的任何帮助


谢谢

我仔细查看了您的代码:

  • 我将Tiger结构的
    image
    属性更改为可选,因为您没有模板或占位符图像(如果有,可以将初始值设置为该图像)
  • 你的故事板(包括你的IBO)非常糟糕。。。我不知道这是怎么发生的,我以前从未见过这样的事情
  • 我上传了你的项目的工作副本(这里很难显示IB相关的东西,我只是删除并重新添加了你的标签和视图)
  • 我所做的相关代码更改如下:

    在您的老虎模型对象(Tiger.swift)中,我将最后一行从

    var image = UIImage(named:"")
    

    您遇到的第一个错误是因为
    UUImage(名为:“”)
    返回
    nil
    。在Swift中,非可选类型决不能为零

    在您的
    ViewController
    a中将Tiger初始化更改为

    Tiger(age: 3, name: "Tigger", breed: "TOne", image: UIImage(named: "t1.jpg"))
    
    您的
    println()
    调用显示:

    我的老虎的名字是:老虎,它的年龄是3岁,它的年龄是3岁,它的形象是可选的(UIImage:0x7f8d78f43c90)

    这是正确的,因为您的图像现在被包装到一个可选文件中


  • 在视图控制器中,您将图像设置为
    UIImage(名称:”)
    。这将重新运行nil,因此图像值仍然为零。当您尝试打印它时,Swift会看到有一个非可选值为零,这是不允许的;)您可以通过将结构的UIImage字段声明为
    image:UIImage?
    而不是
    image=UIImage(名称:)
    和+1(选择Swift作为第一语言:)来使其成为可选字段(谢谢回复!)但我现在不知道如何使用image:UIImage更新图像实例?在旧版本中,我应该使用“UIImage”(名为:“image.jpg”),但现在我得到了一些非常奇怪的东西,比如“EXC_BAD_instruction”。我更新了Git以防万一。
    Tiger(age: 3, name: "Tigger", breed: "TOne", image: UIImage(named: "t1.jpg"))