Ios 在Swift构建内存中一遍又一遍地声明相同的var吗?

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

我正在用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 {

      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: