跟踪AppInfo代码

 

                             跟踪AppInfo代码

model 中的属性方法都是要共享的,所以写在.h文件中。

数据操作在model中完成.

 

程序运行开始的时候,先执行ViewController,它会对自已的进行成员初始化工作!在准备工作结束以后,便开始对其所管理的view进行加载操作,便到了viewDidLoad方法中去

 

当执行到这儿由于它对自身的成员NSArray *appList 进行了setter重写,所以就调用了该重写后的setter方法.

 

         在该setter方法- (NSArray *)appList中,判断了如果_appList为空,就调用[AppInfoModel appInfoList]进行赋值。以便获得该AppInfoModel的模型数组。

         这就跑到了类AppInfoModel中的去了。(Model)

        

                       appInfoList的作用就是返回一个可变的数组,改数组的内容为自身的模型,这个模型包括name 和 icon两个属性。

                       

                        当程序执行到这一步以后,Controller 已经从知本地的plist中提取出了数据,并且保存在一个名称为AppInfoModel的数组中了。

 

                        接着回到Controller的viewDidLoad方法中,

 

                        程序执行了AppInfoView *appView = [AppInfoView appInfoViewWithAppInfo:self.appList[i]];   (view层)

                        这一句传入了一个参数self.appList[i], 这个参数就是model, 它保存在appList数组中,由下标决定了这是一个在plist中存在的一个模型。 而该方法appInfoViewWithAppInfo: 很简单,功能是创建一个view,这个view中不仅包含了这个view中的子控件(一个label, 一个image, 一个button),还包含传入的model中的appInfo信息,并且保存在这个view的成员属性iconImage和nameLabel中去了。

                        执行到这一步,就已径加载完本地存放在plist文件中的数据和view,接下来就是把9个app view 排列了,并且添加到该控制器所管理的那个view

           

            接下来就是当用户点击下载按钮的时候,主屏幕会显示一个label提示正在下载,几秒后消失,这个就是B(Controller 所管理的view)想要监听A(appView),当A被点击后,B要添加那个label显示几秒中再消失。

所以用到代理模式,B为A的代理,当A被点击了,通知B自已被点击了,需要干些什么事。

controller

appInfoView

 

Controller中。

            好了,这个程序的大致流程就是这样。

转载于:https://www.cnblogs.com/jinhuiyao/p/4595423.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值