1 / 37
文档名称:

ios面试题.doc

格式:doc   大小:26KB   页数:37页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ios面试题.doc

上传人:wz_198613 2019/6/19 文件大小:26 KB

下载得到文件列表

ios面试题.doc

相关文档

文档介绍

文档介绍:-C是一门动态的语言?-c类的类型和数据变量的类型都是在运行是确定的,而不是在编译时确定。例如:多态特性,我们可以使用父类指针来指向子类对象,并且可以用来调用子类的方法。运行时(runtime)特性,我们可以动态的添加方法,或者替换方法。,MVP?MVC:简单来说就是,逻辑、试图、数据进行分层,实现解耦。MVVM:是Model-View-ViewMode模式的简称。由视图(View)、视图模型(ViewModel)、模型(Model),将一部分逻辑(耗时,公共方法,网络请求等)和数据的处理等操作从控制器里面搬运到ViewModel中MVVM的特点:低耦合。View可以独立于Model变化和修改,一个ViewModel可以绑定到不同的View上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。可重用性。可以把一些视图的逻辑放在ViewModel里面,让很多View重用这段视图逻辑。独立开发。开发人员可以专注与业务逻辑和数据的开发(ViewModel)。设计人员可以专注于界面(View)的设计。可测试性。可以针对ViewModel来对界面(View)进行测试MVP:本小编没有接触,希望可以得到大家的帮助。可以在下面留言。?代理的delegate和dataSource有什么区别?block和代理的区别?代理是使用weak来修饰的。。,当对象释放的时候,系统会对属性赋值nil,object-c有个特性就是对nil对象发送消息也就是调用方法,不会cash。delegate:传递的是事件(even),代理可以让A对象通知B对象,我(A)发生的变化,前提B遵循了A的代理,并且实现了A的代理方法。dataSource:传递的是数据。如果A对象声明了数据源,当我们创建A对象的时候,我们就该实现数据源,来告诉A,他所需要的一些数据。例如:tableView数据源方法,需要告诉它,我要实现几组cell,每组cell多少行cell,实现的cell什么样式,什么内容同样delegate和dataSource,都是可以使用require和optional来修饰的。代理和Block的区别相同点:代理和Block大多是我们都可以用来做倒序传值的。我们都得注意避免循环引用。不然我们去使用代理还是Block的时候,都需要判断它们是否实现不同点:代理使用weak修饰,代理必须先声明方法。当我们调用代理的时候要判断是否已经实现。block:使用的是copy来修饰,block保存的是一段代码,其实也就是一个函数。并且可以自动捕捉自动变量,如果想修改此自动变量,还必须使用__block修饰。?包括哪几个部分?属性默认的关键字都有哪些?***@dynamic关键字和***@synthesize关键字是用来做什么的?属性是描述类的特征,也就是具备什么特性。三个部分,带下划线的成员变量,get、setter方法。默认关键字:readwrite,assign,atomic;--是针对基本类型(NSInteger,BOOL,NSUInteger,int,等)但是针对引用类型,默认:strong,readwrite,atomic(例如:NSString,NSArray,NSDictory等)***@dynamic:修饰的属性,其getter和setter方法编译器是不会自动帮你生成。必须自己是实现的。***@synthesize:修饰的属性,其getter和setter方法编译器是会自动帮你生成,不必自己实现。且指定与属性相对应的成员变量。?默认关键字,基本数据:atomic,readwrite,assign普通的OC对象:atomic,readwrite,,如果用strong会有什么问题?(注意:这里没有说用strong就一定不行。使用copy和strong是看情况而定的众所周知,我们知道,可变类型(NSMutableArray,NSMutableString等)是不可边类型(NSString,NSArray等)的子类,因为多态的原因,我们可以使用不可边类型去接受可变类型。,并且使用B可变类型给A赋值,再去修改可变类型B值的时候,A所指向的值也会发生改变。引文strong只是让创建的对象引用计数器+1,并返回当前对象的内容地址,当我们修改B指向的内容的时候,A指向的内容也同样发生了改变,因为他们指向的内存地址是相同的