Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将一个对象指定给另一个对象时会发生什么情况?_Ios_Objective C_Cocoa Touch - Fatal编程技术网

Ios 将一个对象指定给另一个对象时会发生什么情况?

Ios 将一个对象指定给另一个对象时会发生什么情况?,ios,objective-c,cocoa-touch,Ios,Objective C,Cocoa Touch,例如: myVC.bunnies = self.myBunnies; 或 对象被复制了吗,或者只是它的引用被复制了,如果它被破坏了,一切都会破裂 财产声明如下: @property (strong, nonatomic) NSArray *myBunnies; 执行此分配时,将复制引用,并增加引用计数。所有这些都是通过ARC隐式完成的,因为您声明了属性strong 如果您希望制作副本,请将声明更改为 @property (copy, nonatomic) NSArray *myBunnies

例如:

myVC.bunnies = self.myBunnies;

对象被复制了吗,或者只是它的引用被复制了,如果它被破坏了,一切都会破裂

财产声明如下:

@property (strong, nonatomic) NSArray *myBunnies;

执行此分配时,将复制引用,并增加引用计数。所有这些都是通过ARC隐式完成的,因为您声明了属性
strong

如果您希望制作副本,请将声明更改为

@property (copy, nonatomic) NSArray *myBunnies

这将更加昂贵,但对象内的数组将与传递给setter的数组隔离。

执行此分配时,将复制引用,并增加引用计数。所有这些都是通过ARC隐式完成的,因为您声明了属性
strong

如果您希望制作副本,请将声明更改为

@property (copy, nonatomic) NSArray *myBunnies

这将更加昂贵,但对象内的数组将与传递给setter的数组隔离。

执行此分配时,将复制引用,并增加引用计数。所有这些都是通过ARC隐式完成的,因为您声明了属性
strong

如果您希望制作副本,请将声明更改为

@property (copy, nonatomic) NSArray *myBunnies

这将更加昂贵,但对象内的数组将与传递给setter的数组隔离。

执行此分配时,将复制引用,并增加引用计数。所有这些都是通过ARC隐式完成的,因为您声明了属性
strong

如果您希望制作副本,请将声明更改为

@property (copy, nonatomic) NSArray *myBunnies

这将更加昂贵,但对象内的数组将与传递到setter的数组隔离。

这完全取决于您声明属性的方式:

  • @property(strong)
    :对象引用计数增加,这意味着对象
    self
    保留对受影响对象的引用,以便不释放此对象(直到通过将其设置为
    nil来释放引用)
  • @propery(弱)
    :对象引用被简单分配,但引用计数没有增加,这意味着
    self
    不保留对它的引用
  • @property(copy)
    :复制对象(使用
    copy
    方法),从而存储一个与第一个实例无关的新实例

我强烈建议您阅读Apple文档中的高级内存管理编程指南。它不是完全最新的,因为在ARC成为标准之前,文档中的某些部分仍然描述了它的工作方式,但阅读这些Mecanism仍然很有趣。

这完全取决于您声明属性的方式:

  • @property(strong)
    :对象引用计数增加,这意味着对象
    self
    保留对受影响对象的引用,以便不释放此对象(直到通过将其设置为
    nil来释放引用)
  • @propery(弱)
    :对象引用被简单分配,但引用计数没有增加,这意味着
    self
    不保留对它的引用
  • @property(copy)
    :复制对象(使用
    copy
    方法),从而存储一个与第一个实例无关的新实例

我强烈建议您阅读Apple文档中的高级内存管理编程指南。它不是完全最新的,因为在ARC成为标准之前,文档中的某些部分仍然描述了它的工作方式,但阅读这些Mecanism仍然很有趣。

这完全取决于您声明属性的方式:

  • @property(strong)
    :对象引用计数增加,这意味着对象
    self
    保留对受影响对象的引用,以便不释放此对象(直到通过将其设置为
    nil来释放引用)
  • @propery(弱)
    :对象引用被简单分配,但引用计数没有增加,这意味着
    self
    不保留对它的引用
  • @property(copy)
    :复制对象(使用
    copy
    方法),从而存储一个与第一个实例无关的新实例

我强烈建议您阅读Apple文档中的高级内存管理编程指南。它不是完全最新的,因为在ARC成为标准之前,文档中的某些部分仍然描述了它的工作方式,但阅读这些Mecanism仍然很有趣。

这完全取决于您声明属性的方式:

  • @property(strong)
    :对象引用计数增加,这意味着对象
    self
    保留对受影响对象的引用,以便不释放此对象(直到通过将其设置为
    nil来释放引用)
  • @propery(弱)
    :对象引用被简单分配,但引用计数没有增加,这意味着
    self
    不保留对它的引用
  • @property(copy)
    :复制对象(使用
    copy
    方法),从而存储一个与第一个实例无关的新实例

我强烈建议您阅读Apple文档中的高级内存管理编程指南。它不是完全最新的,因为在ARC成为标准之前,文档中的某些部分仍然描述了它的工作方式,但是阅读这些麦加主义仍然很有趣。

该地产是如何申报的?NSArray*bunnies=[NSArray new];不,是财产
self.myBunnies
@property(强,非原子)NSArray*myBu