我正在创建一个将用于 iOS 网格视图的接口/协议。我试图在类中封装尽可能多的信息,给类及其子类的用户留下很少的信息。我坚持回调方法或委托应该是什么。在 C 或 C++ 中,我需要一个函数指针作为参数传递给在触摸事件上调用的方法。在Objective C(我相当新)中,我对块和选择器感到困惑。从我所看到的Apple方式是使用选择器。所以这个类应该需要一个方法被设置为当检测到触摸事件时会发生什么的选择器。我不想做大量的子类化,因为这会限制可重用性并在每次使用此接口时强制执行更多编码。我包括有限的代码,到目前为止我使用选择器所做的工作,但我愿意接受有关如何使用块来完成相同操作以及为什么会更好的建议。我没有测试过这个,我目前正在设计它。
@protocol Grid <NSObject>
@required
/*! @brief Initializer for base class */
- (id) init:(UIView *)parent withSelector:(SEL)selector;
/*! @brief Draw the actual view */
- (void) draw:(CGRect) rect;
/*! @brief Reload the data */
- (void) reload;
@end
标题具有误导性,自从发布此问题以来,我对 Objective-C 中的工作方式有了更好的了解。这是关于抽象基类、继承和多态性,而不是将选择器设置为属性或委托