Ios 在Swift构建内存中一遍又一遍地声明相同的var吗?
我正在用swift编码,我很好奇如果我在循环内或循环外声明变量,它们将如何工作 例1:Ios 在Swift构建内存中一遍又一遍地声明相同的var吗?,ios,swift,variables,memory,Ios,Swift,Variables,Memory,我正在用swift编码,我很好奇如果我在循环内或循环外声明变量,它们将如何工作 例1: loop { var x = 1 do something with x } 例2: var x = 1 loop { do something with x } var x = anyobject loop { do something with x } 第一个会继续创建引用x的东西吗?或者两者在内存中不会有任何不同?示例1: loop { v
loop {
var x = 1
do something with x
}
例2:
var x = 1
loop {
do something with x
}
var x = anyobject
loop {
do something with x
}
第一个会继续创建引用x的东西吗?或者两者在内存中不会有任何不同?示例1:
loop {
var x = anyobject
do something with x
}
创建x,然后在每个循环中释放x
例2:
var x = 1
loop {
do something with x
}
var x = anyobject
loop {
do something with x
}
循环内的x与循环外的x具有相同的内存。不创建/释放每个循环或循环结束部分示例1:
loop {
var x = 1
do something with x
}
在每个循环中保留alloc变量x和dealloc变量x。每个检波器的值相同,但指针不同
每个循环可以处理相同的值,但不能访问循环外的x
例2:
在每个循环开始时,x的值可能会改变
每个循环处理相同的指针。并且可以访问循环外部的x。我假设如果x是UIImage或类似对象的东西,情况也是一样的?你是说x=对象吗?将x声明为UIImageX内存中有什么不同,如果有的话?每次在第一个指针中处理一个新指针会导致内存的建立吗?不会。内存不会建立。看看这个关于自动变量的wiki: