2015-09-11 118 views
1

我在swift中进行编码,并且很好奇,如果我将它们声明为迭代循环或循环外部的变量将如何工作。会在Swift构建内存中声明相同的变量吗?

实施例1:

loop { 

    var x = 1 

    do something with x 

} 

实施例2:

var x = 1 

loop { 

    do something with x 

} 

将第一个保留创建东西基准X?或者这两者在记忆中不会有什么不同?

回答

0

实施例1的每个环路或端:

保持ALLOC变量x和的dealloc变量x的每个回路。每个人都有相同的价值,但指针不同。

您可以在每个循环中处理相同的VALUE值,但不能在循环外访问x。

示例2: 在每个循环的开始处,x的值可能会发生变化。

您在每个循环中处理相同的POINTER。并且您可以访问循环外的x。

+0

记忆有什么不同,如果有的话?在第一次处理一个新指针会导致内存建立吗? – CodeMark22

+0

编号内存不会建立。在自动变量上看看这个wiki:https://en.wikipedia.org/wiki/Automatic_variable –

+0

完美的谢谢你。 – CodeMark22

1

实施例1:

loop { 

     var x = anyobject 

     do something with x 

    } 

创建x和然后释放X各自环路

实施例2:

var x = anyobject 

loop { 

    do something with x 

} 

在循环内x具有与外循环x中的相同的存储器。不创建/释放循环

+0

我假设它是相同的情况下,如果X说,UIImage或类似的东西? – CodeMark22

+0

你的意思是x = object? – anhtu

+0

将X声明为UIImage – CodeMark22

相关问题