@class BaseItem : NSObject
@end
我想复制' BaseItem的一个实例,一个新的BaseItem实例。我想保留其所有属性和值,但是,我不想保留旧项目的引用/指针。
答案 0 :(得分:2)
您需要让BaseItem
采用NSCopying协议(即实施copyWithZone:方法),然后您可以执行以下操作:
BaseItem *item = [[BaseItem alloc] init]
BaseItem *copiedItem = [item copy]
P.S:NSObject
doesn't support NSCopying
本身,因此您需要在班级中明确采用它。
答案 1 :(得分:1)
本地变量默认为strong
。
将原始指针设置为nil将删除它。这是ARC在编译期间所做的事情。
BaseItem *baseItem = ...;
BaseItem *baseItem2 = [baseItem copy];
baseItem = nil;