在使用架构模式时,使用Objective-C
which 是传递对象的首选方法DataManager
。Interactor
VIPER
特别是使用Block Based Callbacks
vs. aDataManager Output Protocol
VIPER上最初的 Mutual Mobile 文章中的示例待办事项应用程序
Block Based Callbacks
像这样使用
- (void)todoItemsBetweenStartDate:(NSDate *)startDate endDate:(NSDate *)endDate completionBlock:(void (^)(NSArray *todoItems))completionBlock;
而来自 Brigade Engineering 的这种方法
利用OutputProtocol
一个DataManager
[self.interactor foundUser:user];
哪种方法更好,为什么?
注意:我知道在使用 Swift 时,闭包可以使回调方法更简洁。这个问题直接参考了Objective-C。