Ios 为什么可以';我不能给一个无主常数一个初始值吗?

Ios 为什么可以';我不能给一个无主常数一个初始值吗?,ios,swift,automatic-ref-counting,unowned-references,Ios,Swift,Automatic Ref Counting,Unowned References,这将产生以下错误: class Example {} unowned let first = Example() 我正试图深入了解关键字unowned的确切作用 : 但是,与弱引用不同的是,在 另一个实例具有相同的生存期或更长的生存期 在上面的示例中,只要调用“example()”,您的new属性就会被解除分配(new对于一个属性来说都是一个糟糕的名称,即使只是对于演示:-) 因此,在这里可以起作用的是: Attempted to read an unowned reference but o

这将产生以下错误:

class Example {}
unowned let first = Example()
我正试图深入了解关键字
unowned
的确切作用

但是,与弱引用不同的是,在 另一个实例具有相同的生存期或更长的生存期

在上面的示例中,只要调用“
example()
”,您的
new
属性就会被解除分配(
new
对于一个属性来说都是一个糟糕的名称,即使只是对于演示:-)

因此,在这里可以起作用的是:

Attempted to read an unowned reference but object 0x60c000005f20 was already deallocated
:

但是,与弱引用不同的是,在 另一个实例具有相同的生存期或更长的生存期

在上面的示例中,只要调用“
example()
”,您的
new
属性就会被解除分配(
new
对于一个属性来说都是一个糟糕的名称,即使只是对于演示:-)

因此,在这里可以起作用的是:

Attempted to read an unowned reference but object 0x60c000005f20 was already deallocated
发件人:

与弱引用一样,无主引用不会对其引用的实例保持强控制

创建
示例的新实例
,并首先将其分配给无主常量
。没有任何内容包含对您的
示例
实例的强引用,因此它会立即被释放。您的无主常量
first
现在保存着对该解除分配对象的引用,因此您会得到一个错误,即您试图读取一个解除分配对象

unowned
关键字用于创建对对象的弱引用,您可以保证引用对象的生存期与引用对象相同。这使您能够防止引用循环,同时避免需要展开可选的循环(如
)。

来自:

与弱引用一样,无主引用不会对其引用的实例保持强控制

创建
示例的新实例
,并首先将其分配给无主常量
。没有任何内容包含对您的
示例
实例的强引用,因此它会立即被释放。您的无主常量
first
现在保存着对该解除分配对象的引用,因此您会得到一个错误,即您试图读取一个解除分配对象

unowned
关键字用于创建对对象的弱引用,您可以保证引用对象的生存期与引用对象相同。这使您能够防止引用循环,同时避免需要展开可选循环(如