复制/ mutableCopy操作增量保留计数值?? (目标C)

Mat*_*rix 18 memory-management objective-c

复制/ mutableCopy操作增量保留计数值?? (目标C)

Car*_*rum 29

正常的语义copymutableCopy将给你一个保留的对象,就像通过alloc/ init将要创建一个新对象一样.如果这就是你所要求的,它们不会增加被复制对象的引用计数.从NSObject文档copy:

如果您使用的是托管内存(不是垃圾回收),则此方法会在返回之前保留新对象.但是,该方法的调用者负责释放返回的对象.

  • +1,除了在某些情况下(例如,"复制"不可变对象),调用`copy`可能只会增加保留计数并返回相同的对象.(当然,相同的内存管理规则仍然适用) (6认同)
  • 最重要的是,精确保留计数是程序员不应该考虑的实现细节.当你'复制'时,你可以把它当作一个在任何正确的程序中保留计数为1的新对象.实际的保留计数基本上不属于我们的业务. (4认同)