全球旧事资料 分类
ios面试题
1为什么说ObjectiveC是一门动态的语言?
1objectc类的类型和数据变量的类型都是在运行是确定的,而不是在编译时确定。例如:多态特性,我们可以使用父类指针来指向子类对象,并且可以用来调用子类的方法。运行时ru
time特性我们可以动态的添加方法,或者替换方法。
2讲一下MVC和MVVM,MVP?
MVC简单来说就是,逻辑、试图、数据进行分层,实现解耦。
MVVM是ModelViewViewMode模式的简称。由视图View、视图模型ViewModel、模型Model三部分组成比MVC更加释放控制器臃肿,将一部分逻辑耗时,公共方法,网络请求等和数据的处理等操作从控制器里面搬运到ViewModel中
MVVM的特点:
f低耦合。View可以独立于Model变化和修改,一个ViewModel可以绑定到不同的View上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。可重用性。可以把一些视图的逻辑放在ViewModel里面,让很多View重用这段视图逻辑。独立开发。开发人员可以专注与业务逻辑和数据的开发ViewModel。设计人员可以专注于界面View的设计。
可测试性。可以针对ViewModel来对界面View进行测试
MVP本小编没有接触,希望可以得到大家的帮助。可以在下面留言。
3为什么代理要用weak?代理的delegate和dataSource有什么区别?block和代理的区别
代理是使用weak来修饰的。1使用weak是为了避免循环引用。2当使用weak修饰的属性,当对象释放的时候,系统会对属性赋值
ilobjectc有个特性就是对
il对象发送消息也就是调用方法,不会cash。
delegate传递的是事件eve
,代理可以让A对象通知B对
f象,我A发生的变化,前提B遵循了A的代理,并且实现了A的代理方法。
dataSource传递的是数据。如果A对象声明了数据源,当我们创建A对象的时候,我们就该实现数据源,来告诉A,他所需要的一些数据。例如:tableView数据源方法,需要告诉它,我要实现几组cell,每组cell多少行cell,实现的cell什么样式,什么内容
同样delegate和dataSource都是可以使用require和optio
al来修饰的。
代理和Block的区别
相同点:代理和Block大多是我们都可以用来做倒序传值的。我们都得注意避免循环引用。不然我们去使用代理还是Block的时候,都需要判断它们是否实现
不同点:代理使用weak修饰,代理必须先声明方法。当我们调用代理的时候要判断是否已经实现。
block:使用的是copy来修饰,block保存的是一段代码,
f其实也就是一个函数。并且可以自动捕捉自动变量,如果想修改此自动变量,还必须使用__block修饰。
4属性的实质是什么r
好听全球资料 返回顶部