我在swift中进行编码,并且很好奇,如果我将它们声明为迭代循环或循环外部的变量将如何工作。会在Swift构建内存中声明相同的变量吗?
实施例1:
loop {
var x = 1
do something with x
}
实施例2:
var x = 1
loop {
do something with x
}
将第一个保留创建东西基准X?或者这两者在记忆中不会有什么不同?
我在swift中进行编码,并且很好奇,如果我将它们声明为迭代循环或循环外部的变量将如何工作。会在Swift构建内存中声明相同的变量吗?
实施例1:
loop {
var x = 1
do something with x
}
实施例2:
var x = 1
loop {
do something with x
}
将第一个保留创建东西基准X?或者这两者在记忆中不会有什么不同?
实施例1的每个环路或端:
保持ALLOC变量x和的dealloc变量x的每个回路。每个人都有相同的价值,但指针不同。
您可以在每个循环中处理相同的VALUE值,但不能在循环外访问x。
示例2: 在每个循环的开始处,x的值可能会发生变化。
您在每个循环中处理相同的POINTER。并且您可以访问循环外的x。
实施例1:
loop {
var x = anyobject
do something with x
}
创建x和然后释放X各自环路
实施例2:
var x = anyobject
loop {
do something with x
}
在循环内x具有与外循环x中的相同的存储器。不创建/释放循环
我假设它是相同的情况下,如果X说,UIImage或类似的东西? – CodeMark22
你的意思是x = object? – anhtu
将X声明为UIImage – CodeMark22
记忆有什么不同,如果有的话?在第一次处理一个新指针会导致内存建立吗? – CodeMark22
编号内存不会建立。在自动变量上看看这个wiki:https://en.wikipedia.org/wiki/Automatic_variable –
完美的谢谢你。 – CodeMark22