Swift3 SWIFT 3在展开可选值时意外发现nil(在模拟器中工作完美)

Swift3 SWIFT 3在展开可选值时意外发现nil(在模拟器中工作完美),swift3,Swift3,我的代码在模拟器中工作得很好,但当我试图在iPhone和iPad上运行它时,它会弹出“致命错误:在打开可选值时意外发现nil”警告 奇怪的是,当我尝试获取变量的值时,这个错误并没有发生,它发生在我尝试使用我获取的值创建对象时: “pName”和“pQuestion”是带有值的变量,但正如您所看到的,一旦我尝试将这些值赋予对象的属性,它们就变成了零 这段代码实际上是在模拟器中运行的,不知怎么的,它只是在真实的设备上继续运行。斯威夫特告诉您的是完全正确的。当您为问题变量赋值时,该变量为零。 你不想

我的代码在模拟器中工作得很好,但当我试图在iPhone和iPad上运行它时,它会弹出“致命错误:在打开可选值时意外发现nil”警告

奇怪的是,当我尝试获取变量的值时,这个错误并没有发生,它发生在我尝试使用我获取的值创建对象时:

“pName”和“pQuestion”是带有值的变量,但正如您所看到的,一旦我尝试将这些值赋予对象的属性,它们就变成了零


这段代码实际上是在模拟器中运行的,不知怎么的,它只是在真实的设备上继续运行。

斯威夫特告诉您的是完全正确的。当您为
问题
变量赋值时,该变量为零。 你不想在开始给它赋值之前初始化它吗

我想你要找的是


let question=question(名称:pName,问题:pQuestion)

斯威夫特告诉你的是完全正确的。当您为
问题
变量赋值时,该变量为零。 你不想在开始给它赋值之前初始化它吗

我想你要找的是


let question=question(名称:pName,问题:pQuestion)
所以,我想我知道我的代码有什么问题

正如Hunaid Hassan所说,我当前的代码只会从对象中得到零

我的原始代码不起作用的原因是,其中一个属性是日期变量,而且因为我在澳大利亚,当应用程序在真实设备上运行时,我得到的日期将为零,因为我没有设置区域设置

这是我的原始代码:

下面是我找到的设置区域设置的修复程序:
ref:

所以,我想我知道我的代码出了什么问题

正如Hunaid Hassan所说,我当前的代码只会从对象中得到零

我的原始代码不起作用的原因是,其中一个属性是日期变量,而且因为我在澳大利亚,当应用程序在真实设备上运行时,我得到的日期将为零,因为我没有设置区域设置

这是我的原始代码:

下面是我找到的设置区域设置的修复程序:
ref:

是否添加了异常断点以查看应用程序崩溃的位置?当我尝试将对象附加到数组中时,它崩溃了。就在“let question:question?=nil”这一行的正上方,这一行注释的代码就是我开始使用的代码,然后应用程序在这一行崩溃,出现了完全相同的错误。您是否添加了异常断点以查看应用程序崩溃的位置?当我尝试将对象附加到数组中时,它崩溃了。就在“let question:question?=nil”行的正上方,那行代码是我开始使用的注释行,然后应用程序在那行崩溃,出现了完全相同的错误。这正是我开始使用的,当它到达那行时,整个程序就崩溃了,出现了完全相同的错误。这很奇怪。你能展示一下整个功能吗?或者更好,类?我知道怎么回事,因为我在澳大利亚,我没有为日期变量设置区域设置,它是对象的属性之一,所以在原始代码中,当我试图创建问题对象时,我实际上正在解包pDate,它为零。无论如何,谢谢你的帮助!现在我知道我不能“让问题:问题=nil”也不能:)这正是我所开始的,当它到达那一行时,整个事情就崩溃了,有着完全相同的错误。这很奇怪。你能展示一下整个功能吗?或者更好,类?我知道怎么回事,因为我在澳大利亚,我没有为日期变量设置区域设置,它是对象的属性之一,所以在原始代码中,当我试图创建问题对象时,我实际上正在解包pDate,它为零。无论如何,谢谢你的帮助!现在我知道我也不能“让问题:问题=零:)请在问题/答案中包含代码,而不是屏幕截图的链接。请在问题/答案中包含代码,而不是屏幕截图的链接。