我正在尝试在一个自定义类中实现Target-Action设计模式。该接口将具有以下方法:
- (void)addTarget:(id)target action:(SEL)action forEvents:(MyEvents)events;MyEvents是一个NSUInteger。在我的类中存储这些信息的最佳方式是什么?打开UIControl.h文件,我注意到UIKit包含以下内容:
NSMutableArray* _targetActions;我假设所有操作都被添加到这个封装在NSObject中的数组中(我是否需要创建另一个自定义对象,或者是否有可以重用的东西?)每次需要执行某个操作时,它都会使用位掩码作为过滤器来迭代数组。这是正确的吗?
提前谢谢。
发布于 2011-05-11 01:06:40
该数组包含一个名为UIControlTargetAction的私有类的实例。它只是一个有三个实例变量的POD类:
id _target;
SEL _action;
int _eventMask;你可以很容易地创建你自己的版本。然后,当你有一个事件时,你只需要这样做:
for (MyTargetAction *targetAction in targetActions) {
if (targetAction.eventMask & myEventMask) {
[targetAction.target performSelector:targetAction.action];
}
}https://stackoverflow.com/questions/5953053
复制相似问题