指向一个的两个对象

时间:2013-05-19 22:11:50

标签: ios objective-c

我有这样的方法:

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

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

....
}

object1object2的声明如下:

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

和MyClass是这样的:

@interface MyClass :NSObject

....
@end

以后当我修改self.object1 self.object2被修改为时,我希望self.object2在修改self.object1

时不会更改其值

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:3)

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

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

因此,如果您按照定义修改self.object1,则会修改self.object2

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