知识汇总

作者: 独家记忆3997 | 来源:发表于2017-11-19 12:31 被阅读7次

    OC中instancetype与id的区别

    区别1:

    在ARC(Auto Reference Count)环境下:

    instancetype用来在编译期确定实例的类型,而使用id的话,编译器不检查类型, 运行时检查类型.

    在MRC(Manual Reference Count)环境下:

    instancetype和id一样,不做具体类型检查

    区别2:

    id可以作为方法的参数,但instancetype不可以

    instancetype只适用于初始化方法和便利构造器的返回值类型

    请简述MVVM,以及相对于MVC的优点?

    MVC

    MVC是一种架构模式,M表示Model,V表示视图View,C表示控制器Controller

    Model负责存储、定义、操作数据;

    View用来展示书给用户,和用户进行操作交互;

    Controller是Model和View的协调者,Controller把Model中的数据拿过来给View用。Controller可以直接与Model和View进行通信,而View不能和Controller直接通信。View与Controller通信需要利用代理协议的方式,当有数据更新时,Model也要与Controller进行通信,这个时候就要用Notification和KVO,这个方式就像一个广播一样,Model发信号,Controller设置监听接受信号,当有数据更新时就发信号给Controller,Model和View不能直接进行通信,这样会违背MVC设计模式。

    MVVM

    ViewModel层,就是View和Model层的粘合剂,他是一个放置用户输入验证逻辑,视图显示逻辑,发起网络请求和其他各种各样的代码的极好的地方。说白了,就是把原来ViewController层的业务逻辑和页面逻辑等剥离出来放到ViewModel层。

    View层,就是ViewController层,他的任务就是从ViewModel层获取数据,然后显示。

    事件的传递和响应的区别:

    事件的传递是从上到下(父控件到子控件),事件的响应是从下到上(顺着响应者链条向上传递:子控件到父控件。

    相关文章

      网友评论

        本文标题:知识汇总

        本文链接:https://www.haomeiwen.com/subject/qwmuvxtx.html