Coder Social home page Coder Social logo

lovemo / mvvmframework Goto Github PK

View Code? Open in Web Editor NEW
1.7K 60.0 450.0 16.71 MB

(OC版)总结整理下一个快速开发框架,以更优雅的方式写代码,做一个代码艺术家。分离控制器中的代码,已加入cell自适应高度,自动缓存网络请求代码,降低代码耦合,提高开发效率。

License: MIT License

Objective-C 98.98% Ruby 0.09% Shell 0.73% C++ 0.03% C 0.17%

mvvmframework's Issues

如果一个页面有多个网络请求, 一个ViewModel怎么区分

如果一个页面有多个网络请求, 一个ViewModel怎么区分

    [self.viewModel smk_viewModelWithProgress:nil success:^(id responseObject) {
        [self.tableViewModel getDataWithModelArray:^NSArray * _Nonnull{
            return responseObject;
        } completion:^{
            [self.tableView reloadData];
        }];
    } failure:^(NSError *error) {
        
    }];```

MVVM就是一种垃圾框架。

MVC的本质是模型,视图,控制器,其中的模型是指业务模型而不是数据模型。因此MVC本身就能解决现有的各种应用场景。何必要新使用一套MVVM框架,那你置C的地位何在。

循环引用问题

ThirdVC.m的viewDidLoad方法里:

SMKMediator *mediator = [SMKMediator mediatorWithViewModel:self.viewModel viewManger:self.thirdViewManger];
self.thirdViewManger.smk_mediator = mediator;
self.viewModel.smk_mediator = mediator;

这段会有循环引用问题?

小小的疑问

既然MVVM是解耦View和Model之间的关系的,就是独立View和Model ,这样如果要复用这个View的时候就很方便 ,比如我把这个View拖进另外一个工程,就能使用,但是你这个工程并没有独立View和model ,在View里面直接引入Model ,你觉得这个是真正意义上的MVVM?我要复用这个View 我还要有一个一样的Model,这不是耦合吗?

感觉更像mvp呢

大致看了下,让view和model耦合,感觉不好吧,view的复用呢,还有我感觉mvvm中要有双向绑定,不然和mvp有何区别呢

你好 请问

这个SMKAction是你自己封装的 还是 第三方的呢?
[[SMKAction sharedAction] sendRequestBlock:^(NSObject *request) {

// // 方式2
// return [[FirstRequest alloc]init];

    // 方式3
    //smk_url (如果设置了url,则不需要在设置scheme,host,path 属性)
    request.smk_scheme = @"https";
    request.smk_host = @"api.douban.com";
    request.smk_path = @"/v2/book/search";
    request.smk_method = SMKRequestMethodGET;     // default
    request.smk_params = @{@"q": @"基础"};

    return request;

} progress:nil success:^(id responseObject) {
    if (responseObject) {
        NSArray *modelArray = [FirstModel mj_objectArrayWithKeyValuesArray:responseObject[@"books"]];
        success(modelArray);
    }
} failure:nil]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.