0.1.1

iodine 0.1.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最后发布2014年12月

Karolis Stasaitis维护。



 
依赖项
ReactiveCocoa>= 0
ReactiveViewModel>= 0
 

iodine 0.1.1

  • Karolis Stasaitis

一个基于ReactiveCocoa的MVVM框架,旨在将不能测试的UIKit视图逻辑与可测试的业务逻辑分开。

它如何工作?

这很简单

  • 我们创建一个新的模型类
@interface MYViewModel : IOTableViewModel
  • 我们子类化任何IO视图控制器
@interface MYViewController : IOTableViewController
  • 然后实现绑定方法
- (void)pre
{
    [super pre];

    //This is where all the things prior to initializing the view go. 
    //For example:
    [self rac_signalForSelector:@selector(scrollViewDidScroll:) 
                   fromProtocol:@protocol(UIScrollViewDelegate)];
}

- (void)setupViews
{
    [super setupViews];

    //Here we set up our view like we do on viewDidLoad. For example:
    [self.view addSubview:self.doneButton];
}

- (void)post
{
    [super post];

    //After we setup the views, we want to bind our view model against 
    //them, this is where all that magic goes. For example:
    RAC(self.doneButton, userInteractionEnabled) = 
         RACObserve(self.viewModel, doneEnabled);
}
  • 现在只需用模型实例化您的视图控制器即可完成
MYViewModel *vm = [[MYViewModel alloc] init];
MYViewController *vc = [[MYViewController alloc] initWithViewModel:vm];

好吧,现在我能不能看到一个真正的例子?

rprtr 应该是一个很好的资源,该项目就是针对它开发的。

关于安装框架如何?

您可以将其构建为常规框架,但我建议使用CocoaPods

pod 'iodine'

目前支持的UIKit类

  • UIViewController (IOViewController)
  • UITableViewController (IOTableViewController)
  • UITableHeaderFooterView (IOTableHeaderFooterView)
  • UITableViewCell (IOTableViewCell)