【发布时间】:2013-03-20 10:04:02
【问题描述】:
目前我正在开发一个 iOS 项目。其中我有两个从同一类派生的视觉相似的对象。我想要的是当我对需要在对象 2 中更改相同的一个对象进行一些更改时。
详细说明:
我有一个类MyClass 和obj1 和obj2 派生自MyClass。当我对obj1 执行一些操作时,它会调用obj1 的相应委托方法。现在我想要的是当obj1调用它的委托方法时,我还需要调用obj2的委托方法。类似:如果我更改obj2,它将影响obj1。以后我还需要添加更多元素。
我做了什么:
我添加了一个 Singleton 类并在其上放置了一个数组并将对象添加到其中。
在委托方法中:
- (void)delegateMethod:(id)param
{
NSMutableArray *arr = [[MySingleTon sharedObject] getArray];
for(int loop = 0;loop<[arr count];loop++)
{
if(![arr objectAtIndex] == self)
{
[[arr objectAtIndex:loop] delegateMethod:param];
}
}
}
发生了什么:
但问题是它会导致无限循环。 Obj2 将做同样的事情,所有其他对象做同样的事情。我被困在这里,我有大约 25 个委托方法,需要实现相同的功能。我无法通过添加额外的参数来更改委托方法。
有什么解决办法吗?请帮助我,提前谢谢。
为什么我需要这个/实际实施:
我创建了一个可以缩放/旋转等的自定义视图。我创建了两个相同类的对象并将其添加到我的父视图中。现在,当我更改视图 1 上的任何内容时,它应该更改视图 2 中的类似内容。我还需要添加更多视图。
【问题讨论】:
标签: ios design-patterns delegates singleton customization