0

我有这样的方法:

-(void)myMethod:(MyClass *)object {

self.object1 = object;
self.object2 = object;

....
}

并且object1声明object2如下:

property (nonatomic, strong) MyClass *object1;
property (nonatomic, strong) MyClass *object2;

MyClass 是这样的:

@interface MyClass :NSObject

....
@end

后来当我修改被修改为时,我希望self.object1在修改时不要改变它的值self.object2self.object2self.object1

4

2 回答 2

4

您需要制作这两个属性copy而不是sttrong. 但是你需要使你MyClass符合NSCopying协议并且你必须实现该copyWithZone:方法。

于 2013-05-19T22:17:07.993 回答
3

您没有两个指向一个的对象。

您有两个指向同一个对象的指针。

因此,如果您self.object1根据定义进行修改,它将修改self.object2

改变这种行为的唯一方法是让 object1 和 object2 指向两个不同的对象。

于 2013-05-19T22:15:28.410 回答