【问题标题】:Two objects that points to one [closed]指向一个的两个对象[关闭]
【发布时间】:2013-05-19 22:11:50
【问题描述】:

我有这样的方法:

-(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时不要改变它的值

【问题讨论】:

  • 那么不要给两者分配相同的值!!请在尝试使用 Objective-C 之前花点时间了解指针和对象。
  • 我想保存旧值,我想你还没有理解我的问题,请,请,在回答之前理解问题。
  • 如果你理解对象和指针,你就不需要问这个问题了。

标签: ios objective-c


【解决方案1】:

您需要将这两个属性设为copy 而不是sttrong。但是你需要让你的MyClass 符合NSCopying 协议并且你必须实现copyWithZone: 方法。

【讨论】:

【解决方案2】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 2014-03-27
    • 1970-01-01
    • 2020-01-22
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多