2013-06-06 54 views
0

我正试图在这里玩指针。我有一个UIImageView。我需要将其image属性指向另一个UIImageViewimage属性,以便每当更改第二个UIImageView的图像时,都会自动更新第一个图像。Objective-C中指针的指针

一些指针操作在这里,但我似乎无法得到我的头。

+0

所以每当第二改变只给firstImageView.image = @“ImageName” – alpha

回答

2

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

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

+0

嗯....志愿绝对是一种选择,但我想知道,如果它可以通过指针来操作。所以我想我不能玩坏人在这里。 – tGilani

+1

@tGilani IMO,就像我在答案中所说的那样,这是不可能的。为此事道歉。它们只是指针,而不是指向指针的指针。 – sunkehappy

2

可以使用Key-Value Observing

从苹果文档

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

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. 
} 
+0

感谢您的输入,我没有任何实际需要,我只是想知道是否可以通过指针完成.. – tGilani

0

试着重写setter。使UIImageView一个子类,对第二UIImageView的一个属性,喜欢写东西

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

希望这有助于。

+0

这是一种单向解决方案,当第二个imageview更改它的图像会发生什么?另外,我想知道指针是否可以用于此目的。 – tGilani

+0

您可以在第二个imageview的图像设置器中执行相同的双向功能。你可能需要检查_image =!图片;以防止递归调用。或者你可以使用代表。就指针的使用而言,我认为所有这些都已经在使用指针了。没有'图像对象'被传递。相反,你传递的是指向UIImage对象的指针。 – aadarshsg