如果只需要一层的的深度复制,可以使用通用实现,效率高,代码也少。ARC代码如下:
- (id)copyWithZone:(NSZone *)zone {
id copyInstance = [[[self class] allocWithZone:zone] init];
size_t instanceSize = class_getInstanceSize([self class]);
memcpy((__bridge void *)(copyInstance), (__bridge const void *)(self), instanceSize);
return copyInstance;
}
有一个问题,这样做会破坏掉引用计数,应该如何解决呢???
本文介绍了一种在ARC环境中实现一层深度复制的方法,并提供了一个具体的代码示例。该方法通过内存拷贝来完成对象的复制,但存在引用计数被破坏的问题。
2339

被折叠的 条评论
为什么被折叠?



