zoukankan      html  css  js  c++  java
  • BeeFramework

      借助于OC语言特性,Bee将核心逻辑注入到NSObject基类中去,在使用Bee时,大多数情况下可以不必修改现有类继承关系,这样设计是把双刃剑,也有可能与您现有方法名冲突。
         在您代码中任何位置都可以这样做:    
         [self GET:@"http://www.qq.com/logo.png"];    
         [self POST:@"http://api.qq.com/" data:[NSData data]];    
         [self postNotification:@"SOME_NOTIFICATION"];    
         [self sendMessage:@"SOME_MESSAGE" timeoutSeconds:10.0f];    
         [self sendUISignal:@"SOME_SIGNAL"];    


       * 基于MVC模型    
         典型的MVC架构,清楚的分为View、Controller、Model三个层次,业务数据、业务逻辑、界面展现、交互逻辑完全分离。


       * 事件驱动    
         对于Controller、Model均与状态无关(Stateless),因此由三种Event驱动:Message、Request、Notification。对于View,我们抛弃掉了老旧的Delegate(语言级实现方式),引入新概念UISignal(框架级实现方式)用来驱动界面交互事件或状态改变。  


       * UISignal    
         UISignal拥有极强的路由能力,可以在UIView <-> UIView <-> UIViewController <-> UINavigationController <-> UIViewController 之间完成复杂且高效的的UI信号路由。

         那么,我们来看一个关于UISignal的实际运行的例子:  


         [signal.BeeUIImageView.LOAD_COMPLETED] >  // 信号发送   
         BeeUIImageView >                          // 信号发给了自己   
         DribbbleCell >                            // 二传给superview   
         UITableViewCellContentView >              // 三传给contentView   
         BeeUITableViewCell >                      // 四传给UITableViewCell  
         UITableView >                             // 五传给UITableView   
         BeeUIBoardView >                          // 六传给UIViewController.view  
         DribbbleBoard                             // 七传给UIViewController   


         实际上,我只写了一行代码……  
         [self sendUISignal:BeeUIImageView.LOAD_COMPLETED];   


         神奇吗?

       * 哪里发送哪里接收    
         尽可能允许您将UISignal、Message、Request、Notification相关处理逻辑内嵌到物理位置上相同的代码中,型成整体,方便维护及并行开发。  
         典型的例子是一个APP界面即收发网络请求,又处理控制器相关消息,同时又处理子控件发来的信号。不用担心,这些代码优美而秩序的展现在您面前。


       * 基于状态的新UIBoard    
         基于State,重新定义了UIViewController的实现方式,统一称为UIBoard,同样的,UINavigationController统一称为UIStack。   
         开发者只需关注UIBoard状态变化时该做什么事,以及子级控件的UISignal该怎样处理。


       * 内置Debugger    
         不依赖于XCode instrument,Bee自身提供了App内调试工具。  
         您可以随时观察APP运行状态,诸如:  
           * 网络请求:请求详情,成功失败率,网速限制(模拟3G、2G),开网断网
           * 内存占用:内存剩余,模拟分配,模拟内存警告
           * 事件处理:Notification、Message历史列表
           * 界面状态:界面存活,数据,状态
           * 沙盒浏览:在线查看沙箱目录中所有文件
           * 异常模拟等功能


    主要模块
    --------------------


       * External
         外部信赖库
         * ASI: 网络通讯库
         * JSONKit: JSON解析引擎
         * Reachability: 网络接入点检测
       * Foundation
         基础模块,及NSObject扩展
         * Cache
           * JSON based
           * File cache
           * Memory cache
         * Log
           * NSLog wrapper
           * VAR_DUMP
         * Network
           * GET/POST
           * File upload
           * Black list
         * Performance
         * Runtime
           * Object allocation
           * Callstack
         * Sandbox
         * Singleton
         * SystemInfo
           * UDID
           * System version
           * Jailbreak detection
         * Thread
           * Block based
       * MVC
         * Controller
           * Message
           * Action mapping/routing
         * Model
         * View
           * UIView
             * Touchable
             * UISignal
           * UIActionSheet
           * UIActivityIndicator
           * UIAlertView
           * UIButton
           * UIColor
           * UIDatePicker
           * UIFont
           * UIGridCell
           * UIImageView
             * 支持网络异步加载   
           * UIKeyboard
           * UILabel
           * UIOrientation
             * 方向变化通知
             * 角度变化通知
           * UIProgressView
           * UIPullLoader
           * UIRect
             * 拉伸
             * 位移
           * UISegmentedControl
           * UITabBar
           * UITextView
           * UIWebView
           * UIZoomView
         * ViewController
           * UIBoard
           * UIStack
           * UIStackGroup
           * UITableBoard
           * UIFlowBoard


    编译要求
    --------------------


      * Mac OS X 10.6, Xcode 4




    运行要求
    --------------------


      * iOS 4.0 或更新版本




    目录结构
    --------------------


      * BeeDebugger/  
         内置调试工具
      * BeeFramework/  
         框架源代码主目录
         * Core/: 核心模块
         * Extension/: 基础类扩展
         * View/: 基础视图控件
         * ViewController/: 基础视图控制器
      * Example/  
         相关教程及示例代码
      * Documention/
         相关文档
      * External/
         第三方库引用




    已知问题
    --------------------
    1. 内存泄露(正在解决)
    2. 下拉刷新(没写完)




    运行例程
    --------------------


    双击打开Example/WhatsBug.xcodeproj,编译并运行。




    安装步骤
    --------------------


    1. 将BeeFramework目录完整复制到项目目录中去。
    2. 添加BeeFramework到工程目录
    3. 添加相关Framework:
       a. libz.dlib
       b. CFNetwork.framework
       c. CoreGraphics.framework
       d. Foundation.framework
       e. MobileCoreServies.framework (ASI)
       f. QuartzCore.framework
       g. Security.framework (MD5)
       h. SystemConfiguration.framework (Reachibility)
       i. UIKit.framework
    4. 在工程的.pch预编译头中加入:
       a. #import "Bee.h"
       b. #define __BEE_TESTING__  (1) // 是否启用开发模式
       c. #define __BEE_LOG__      (1) // 是否打印LOG
       d. #define __BEE_DEBUGGER__ (1) // 是否开启Debug
    5. 编译运行
    6. Good luck

    [1]: http://www.whatsbug.com
    [2]: http://itunes.apple.com/cn/app/qq-you-xi-da-ting/id443908613?mt=8
    [3]: http://itunes.apple.com/cn/app/qq-kong-jian/id364183992?mt=8
    [4]: http://bbs.whatsbug.com

  • 相关阅读:
    VS一个奇怪的发布问题
    VS删除空白行
    IDEA Rider 准备试用一段时间(1)
    IDEA Rider使用64位IISExpress(3)
    IDEA rider 管道模式 经典模式(2)
    VSCode批量替换使用注意问题
    IScroll Unable to preventDefault inside passive event listener due to target being treated as passive
    数据库索引也不是多多益善
    css设置手型光标
    javascript参数化拼接字符串两种方法
  • 原文地址:https://www.cnblogs.com/lm3515/p/3287153.html
Copyright © 2011-2022 走看看