iOS 认知

下面说下我对整个app层的一些理解 这边我以为能够从大的方面来说先。git

咱们一个app 基本包括3层:DB层、 Server层、应用层。github

这个是我对app整个框的认知app

上面3个间的关系 是目前我理解的,不一样的人对他们的处理确定也有一些差入。工具

 

一个app就像一颗树,是一颗树,一个主干,不少分叉树枝,分叉再分叉,不断嵌套。性能

看到这种关系,我总以为这就是N个单例组合,N个木块,就像搭积木,不一样的产品,不一样的模型,不一样的设计思路。但总有那么一些是共通的。 如上图 app给用户的视觉就是个UIWindow,window里能够存放UIController,一些页面的跳转也基本是经过controller之间的关系跳转实现的,UIController添加不一样的控件。设计

如何使咱们的代码使用方便简单,是咱们一直追求的事情。对象

这是我在百度上找的一张图, 从这个咱们能够清晰的看到咱们经常使用的一些控件的关系,NSObject 是最初的父类,咱们本身也常常会继承它,定制一个知足咱们需求的对象。 对图中NS系,我的认为就是个工具类,UI系是咱们眼睛看获得的。 咱们在实际的app开发过程当中,常常会遇到一个View中addSubView 另一个view,这时候如何更好的在view和view view和Controller 之间传递数据/事件。 这边UIResponder是一个很吸引人的类,nextResponder 这个属性能找到你上一层的响应控件,UIViewController 也是UIResponder的子类。在事件的传递中 咱们常常追踪到Controller层,找到当前view 对应的baseController:     继承

```事件

    id curController = self;开发

    while (![curController isKindOfClass:[UIViewController class]]) {

        if ([curController nextResponder]) {

            curController = [curController nextResponder];

        }

        else

        {

            curController = nil;

            break;

        }

    }

```

经过这个方法咱们能够得到当前view所在的Controller,当前前提是你的view 要有superView。这在项目中是个比较实用的方法。

详细见:https://github.com/weskhen/UIResponder-BaseController

相关文章
相关标签/搜索