Latest 1.2.0
Homepage https://github.com/alibaba/MBMvc
License GPL2 (C) 2007-2013 Alibaba Group Holding Limited
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2 as
published by the Free Software Foundation.
Platforms ios 6.0, requires ARC
Authors

MBMvc 就是Message Based MVC的简称

使M/V/C之间的交互全部通过消息机制来完成,不会相互引用,这样就不会因为有引用导致的各自生命周期的混乱

因为没有引用那么也会消灭由于循环引用导致的内存泄露野指针导致的Crash

通过消息话也能使UI逻辑和业务逻辑异构,直接在不同的线程运行不会相互干扰使UI更流畅

而V/C 之间 也提供了数据Bind的方式达到完全解耦,相互的交互通过数据来驱动,不会有直接引用,从而解决有回调而导致的Crash或内存无法被及时释放的问题

而C/M 之间 也可以通过proxy的方式让 方法执行直接被消息化(有点象异步HSF的样子). 这样消息是可以被拦截并重放的,就可以很简单的作AOP(已经支持拦截器)

Latest podspec

{
    "name": "MBMvc",
    "version": "1.2.0",
    "summary": "MBMvc is a Message Based MVC framework.",
    "homepage": "https://github.com/alibaba/MBMvc",
    "license": {
        "type": "GPL2",
        "text": "             (C) 2007-2013 Alibaba Group Holding Limitedn             This program is free software; you can redistribute it and/or modifyn             it under the terms of the GNU General Public License version 2 asn             published by the Free Software Foundation.n"
    },
    "authors": {
        "u6587u901a": "[email protected]"
    },
    "source": {
        "git": "https://github.com/alibaba/MBMvc.git",
        "tag": "1.2.0"
    },
    "platforms": {
        "ios": "6.0"
    },
    "requires_arc": true,
    "prefix_header_contents": "n#ifdef DEBUGn#define TBMB_DEBUGn#endifnn",
    "subspecs": [
        {
            "name": "Default",
            "source_files": [
                "Pod/Classes/Default/**/*",
                "Pod/Classes/Facade/**/*"
            ],
            "public_header_files": [
                "Pod/Classes/Default/**/*.h",
                "Pod/Classes/Facade/**/*.h"
            ],
            "dependencies": {
                "MBMvc/Protocol": [],
                "MBMvc/Util": []
            }
        },
        {
            "name": "Protocol",
            "source_files": "Pod/Classes/Protocol/**/*",
            "public_header_files": "Pod/Classes/Protocol/**/*.h"
        },
        {
            "name": "Proxy",
            "source_files": "Pod/Classes/Proxy/**/*",
            "public_header_files": "Pod/Classes/Proxy/**/*.h",
            "dependencies": {
                "MBMvc/Default": [],
                "MBMvc/Util": []
            }
        },
        {
            "name": "Rx",
            "source_files": "Pod/Classes/Rx/**/*",
            "public_header_files": "Pod/Classes/Rx/**/*.h",
            "dependencies": {
                "ReactiveCocoa": []
            }
        },
        {
            "name": "Util",
            "source_files": [
                "Pod/Classes/Util/**/*",
                "Pod/Classes/Bindable/**/*"
            ],
            "public_header_files": [
                "Pod/Classes/Util/**/*.h",
                "Pod/Classes/Bindable/**/*.h"
            ],
            "dependencies": {
                "MBMvc/Protocol": []
            }
        }
    ]
}

Pin It on Pinterest

Share This