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