BuildingSetting里面需要修改的编译参数 Direct usage of 'isa' 改成YES Mismatched Return Type 改为YES
BeeMessage 消息,可以说是任务,有消息参数,消息输出结果,比如去某个新闻api获取最新文章通常输入参数pageIndex,perpageCounts,输出是一堆records BeeUISingal 信号 ,比如我摸你了 BeeRoutine 是自己能处理自己消息的个体 BeeMessageExecutor 能帮别人做事的合同工 BeeMessage要send(我要买肉) ->BeeMessageQueue来更改这个消息的下一步状态(政府批准,你去买肉) ->BeeMessageQueue的runloop(排队) ->BeeMessage的runloop(我要做什么嘛) ->BeeMessage判断下一步状态变化了(我要做什么了) ->BeeMessage changeState做实质内容(我做吧) ->BeeMessage.STATE_CREATED (你有号了吗) ->BeeMessageExecutor __globalExecuters route/index (上头有任务要作嘛,有别人插队) ->BeeMessageExecutor (自己就能处理)肉自己砍 ->BeeController (政府找的合同工处理) ->BeeMessage internalNotifySending (做完以后) ->BeeMessage callResponder (回调开始) ->BeeMessage forwardResponder (传递回调) ->BeeRoutine继承的类名作为回调方法,放到responder中
所以实际做的事情都再route里面 BeeHTTPRequestQueue
NSObject 每个object都可以做 NSObject(BeeActiveObject) (BeeUISizeEstimating) NSObject(BeeUISizeEstimating) NSObject(BeeUISignalResponder) NSObject(BeeUISignalResponder) NSObject(BeeUIStyling) NSObject(BeeUIStyling) NSObject(BeeUIResourceLoading) NSObject(BeeUITipsView) NSObject(BeeDatabase) NSObject(BeeHTTPRequestResponder) NSObject(BeeJSON) NSObject(BeeKeychain) NSObject(BeeNotification) NSObject(BeeTicker) NSObject(BeeTimer) NSObject(BeeTypeConversion) NSObject(BeeTypeConversion) NSObject(BeeUserDefaults) NSObject(BeeUserDefaults)
#Bee# + (void)load ->#Bee# [BeeAutoLoader load] ->#BeeHTTPMockServer# [BeeHTTPMockServer autoLoad] ->#BeeActiveRecord# [BeeActiveRecord autoLoad] ->#BeeModel# [BeeModel autoLoad] ->#BeeController# [BeeController autoLoad] ->#BeeService# [BeeService autoLoad] ->#BeeUITemplate# [BeeUITemplate autoLoad] ->#BeeUITemplate# [BeeUITemplate registerTemplateClass]->.xml/.ui/.html/.htm/.android ->#BeeSkeleton# [BeeSkeleton application: didFinishLaunchingWithOptions:] ->#BeeSkeleton# [BeeSkeleton initWindow] 初始化 self.window ->#BeeSkeleton# [BeeSkeleton load] ->#AppDelegate# [AppDelegate load] ->self.window.rootViewController = [AppBoard_iPhone sharedInstance];//关键代码
->AppBoard_iPhone:BeeUIBoard
AppBoard_iPhone开始初始化 BeeUIBoard ->#BeeUIBoard# loadView ->#BeeUIBoardView# initWithFrame ->#BeeUIBoardView#->setFrame->sendUISignal:BeeUIBoard.LAYOUT_VIEWS ->#BeeUIBoard# viewDidLoad ->#BeeUIBoard# createViews ->#BeeUIBoard# (UIViewController类别扩展)sendUISignal: CREATE_VIEWS ->[BeeUISignal send]->[BeeUISignal routes] ->handleUISignal_BeeUIBoard->(ON_SIGNAL2(BeeUIBoard,signal)) ->[BeeUISignal handleUISignal] ->#AppBoard_iPhone#ON_SIGNAL2( BeeUIBoard, signal ) -> _menu.view.backgroundColor = RGB(15, 15, 15); ->#MenuBoard_iPhone#ON_SIGNAL2( BeeUIBoard, signal ) -> _router.view.alpha = 0.0f; ->#BeeUIRouter#ON_SIGNAL2( BeeUIBoard, signal ) ->#BeeUIBoard# SUPPORT_RESOURCE_LOADING(YES)->#UIView(BeeUITemplate)# LOAD_RESOURCE ->#BeeUITemplate# fromResource AppBoard_iPhone.xml __templateCache
->#BeeUIBoard# loadDatas->#BeeUIBoard# (UIViewController类别扩展)sendUISignal: LOAD_DATAS
_splash makeKeyAndVisible-> layoutSubviews->sendUISignal:BeeUIBoard.LAYOUT_VIEWS
MAX_SIGNALS中又定义 ,最多50个SINGALS SUPPORT_RESOURCE_LOADING(YES)才会去寻找对应的xml,ui等文件
<BeeUIBoardView: 0x8100c70; frame = (0 0; 0 0); autoresize = W+H; userInteractionEnabled = NO; layer = <CALayer: 0x8100d00>>