让对象相互“交谈”?

问题描述:

如何使用不在ViewController类中的方法检查两个UIImageView之间的冲突?让对象相互“交谈”?

例如:

此方法波纹管中的岩石类,但玻璃的UIImageView在ViewController中。

如果(CGRectIntersectsRect(rock.frame,glass.frame)){ // 做的东西 }

它抱怨说,玻璃未声明。那么,如果我从rock类调用碰撞方法,我该如何引用ViewController中的玻璃UIImageView? 我不确定如何让课堂互相“交谈” - 这是一个我不太了解的概念,所以一个小例子将非常感谢!或者如果有人能指出一个很好的地方来学习这个概念,那将会有很大的帮助。 谢谢。

该解决方案最后很简单。我只是不明白getter和setter方法的概念。

因此,答案是做的方法在“玻璃”的对象,像这样:

-(BOOL)collidesWithRect:(CGRect)rect 
{ 
    return (CGRectIntersectsRect(self.frame, rect)); 
} 

再从“摇滚”的对象调用它:

if([rock collidesWithRect:glass.frame]) 
{ 
    //collision code 
} 

返回true时两个矩形相交。

我很惊讶我没有得到任何答复,因为这是最终的简单解决方案。也许我没有正确解释自己?希望我解释正确的解决方案。如果没有,请随时纠正我。我们现在不想盲目领先盲人!