在 Objective-C 中实现目标动作设计模式
我正在尝试在自定义类中实现目标操作设计模式。该接口将具有以下方法:
- (void)addTarget:(id)target action:(SEL)action forEvents:(MyEvents)events;
MyEvents 是一个 NSUInteger。在我的班级中存储这些信息的最佳方式是什么?打开文件 UIControl.h 我注意到 UIKit 包含以下内容:
NSMutableArray* _targetActions;
我想所有操作都添加到封装在 NSObject 中的这个数组中(我需要创建另一个自定义对象还是有一些我可以重用的东西?)并且每次它需要执行一个操作,它使用位掩码作为过滤器迭代数组。正确吗?
提前致谢。
I'm trying to implement the Target-Action Design Pattern in a custom class. The interface will have the following method:
- (void)addTarget:(id)target action:(SEL)action forEvents:(MyEvents)events;
MyEvents is a NSUInteger. What's the best way to store these informations on my class? Opening the file UIControl.h I noticed that UIKit contains the following:
NSMutableArray* _targetActions;
I suppose that all actions are added in this array encapsulated in an NSObject (do I need to create another custom object or is there something I can reuse?) and every time it needs to perform an action it iterates the array using the bitmask as a filter. Is it correct?
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
该数组包含名为
UIControlTargetAction
的私有类的实例。它只是一个具有三个实例变量的 POD 类:您可以非常轻松地创建自己的版本。然后,当您有活动时,您只需执行以下操作:
That array holds instances of a private class called
UIControlTargetAction
. It's just a POD class that has three instance variables:You could create your own version quite easily. Then, when you have an event, you just do something like: