指向Objective-C中指针的指针

时间:2013-06-06 05:42:58

标签: iphone ios objective-c pointers

我正在尝试学习如何使用指针。

我有UIImageView。我需要将其image属性指向另一个UIImageView s image属性,这样每当我更改第二个UIImageView图像时,第一个都会自动更新。

这里有一些指针操作,但我似乎无法理解它。

3 个答案:

答案 0 :(得分:2)

这是不可能的。它们只是一个指针。例如aImageViewbImageView。您可以将它们的图像指针设置为指向相同的UIImage。但改变其中一个 NOT 改变另一个。

也许您可以考虑使用KVO来做您想做的事情。更改一个然后将调用您的方法。然后在你的方法中你可以改变另一个。

答案 1 :(得分:2)

您可以使用Key-Value Observing

来自Apple Docs的

  

键值观察提供了一种机制,允许对象通知其他对象的特定属性的更改。

KVO的主要好处是您不必在每次属性更改时都实施自己的方案来发送通知。

[imageView1 addObserver:self
                forKeyPath:@"image"
                   options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld
                   context:NULL];

- (void) observeValueForKeyPath:(NSString *)path ofObject:(id) object change:(NSDictionary *) change context:(void *)context
{
    // this method is used for all observations, so you need to make sure
    // you are responding to the right one.
}

答案 2 :(得分:0)

尝试覆盖setter。创建UIImageView的子类,为第二个UIImageView创建一个属性,并编写类似

的内容
-(void)setImage:(UIImage*)image{
    _image = image;
    self.secondImageView.image = image;
}

希望这有帮助。