Ios 为什么let会导致此错误,而var不会?类“UIViewController”没有初始值设定项

Ios 为什么let会导致此错误,而var不会?类“UIViewController”没有初始值设定项,ios,swift,swift4,Ios,Swift,Swift4,好吧,我找到了这个评论: 但是没有人回答这个问题。为什么此行会导致错误: let nameOfDelegate : protocolName! 但这一条没有: var nameOfDelegate : protocolName! 我知道var是一个可变属性,let是一个常量,但两者都在初始化,对吗 这是因为它没有初始化,因为你以后需要给它一个值,所以你不能这样做,因为它是一个“let”,所以你必须把它变成一个var,这样你以后才能初始化它 但是您可以使用已经从其他地方初始化的值-exmap

好吧,我找到了这个评论:

但是没有人回答这个问题。为什么此行会导致错误:

let nameOfDelegate : protocolName!
但这一条没有:

var nameOfDelegate : protocolName!

我知道var是一个可变属性,let是一个常量,但两者都在初始化,对吗

这是因为它没有初始化,因为你以后需要给它一个值,所以你不能这样做,因为它是一个“let”,所以你必须把它变成一个var,这样你以后才能初始化它


但是您可以使用已经从其他地方初始化的值-exmaple:let-appDelegate=UIApplication.shared.delegate

因为它没有初始化,因为您以后需要给它一个值,所以您不能使用,因为它是一个“let”,所以您必须将它设为一个var,以便以后可以初始化它


但是您可以使用已经从其他位置初始化的值-exmaple:let appDelegate=UIApplication.shared.delegate

没有init()函数,因此在实例化类时不会初始化这些类成员。但是当类实例化时,只有一个必须初始化:不可变的,因为以后不可能初始化它。因此,在init()函数中或直接在定义常量的行中添加initalizer。

没有init()函数,因此在实例化类时不会初始化这些类成员。但是当类实例化时,只有一个必须初始化:不可变的,因为以后不可能初始化它。因此,在init()函数中或直接在定义常量的行中添加initalizer。

在Swift中,如果未提供初始值,可选变量默认设置为nil。Swift不提供常量默认值

在Swift中,如果未提供初始值,则可选变量默认设置为nil。Swift不提供常量默认值

当然……这让我明白了
是不可变的,因为以后无法初始化它。
谢谢!另一个家伙是第一个,所以我不得不把它给他。谢谢你!当然……这让我明白了
是不可变的,因为以后无法初始化它。
谢谢!另一个家伙是第一个,所以我不得不把它给他。谢谢你!我的朋友,向上投票会很好,如果你喜欢其他人的回答,请将其标记为已接受,帮助社区兄弟:我低于15个代表,所以我仍然无法向上投票:/你能给我的帖子一次向上投票,这样我就可以向上投票吗?你是第一个,所以我给了你代表。谢谢你,我的朋友,下一次,不要只去第一个,去你认为最好的回答者那里,投赞成票会很好,我的朋友,如果你喜欢其他人的回答,请将其标记为接受,帮助社区兄弟:我低于15个代表,所以我仍然不能投反对票:/你能给我的帖子投赞成票,这样我就可以投反对票吗?你是第一个,所以我给了你代表。谢谢你,我的朋友,下次,不要只去第一个,去你认为最好的答案