2013-05-19 58 views
0

我有这样的梅索德:两个对象一个

-(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.object1self.object2被修改为,我希望self.object2在修改时不要更改它的值self.object1

+0

然后不要指定相同的值!请在尝试使用Objective-C之前花点时间学习指针和对象。 –

+0

我想保存旧的价值,我的东西你不明白我的问题,请,请,在回答之前了解问题。 – samir

+0

如果你理解了你不需要问这个问题的对象和指针。 –

回答

4

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

+0

正确。相关答案:http://stackoverflow.com/questions/4089238/implementing-nscopying –

+0

有人可以解释投票吗?如果没有解释,没有人会学到任何东西。 – rmaddy

3

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

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

因此,如果你定义修改self.object1它会修改self.object2

改变这种行为的唯一方法是让object1和对象2点到两个不同的对象。