iOS开发知识点总结(三)

1.页面传值都有哪些实现方式

代理、block、通知、属性传值、单例传值、NSUserDefault

2.简述深拷贝和浅拷贝的区别

浅拷贝只复制对象本身,对象的属性以及包含的对象不做复制,源对象和副本指向的是同一个对象,对象的引用计数器+1,其实相当于做了一次retian操作

深拷贝则是复制对象本身,对象的属性也会复制一份。源对象和副本指向的是不同的两个对象,源对象引用计数器不变,副本计数器设置为1

只有不可变对象创建不可变副本才是浅拷贝,其他都是深拷贝

3.系统中有哪些对象是单例

UIApplication(应用程序实例)

NSNotificationCenter(消息中心)

NSFileManager(文件管理)

NSUserDefaults(应用程序设置)

NSURLCache(请求缓存)

NSHTTPCookieStorage(应用程序cookies池)

4.简述MVC设计模式

使用MVC的应用程序被分为3个核心部分:模型(Model)、视图(View)、控制器(Controller)。他们各司其职,既分工明确又相互合作。

Model:持有我们应用的数据,和定义怎么操纵它

View:处理用户的操作和展示Model

Controller:它的作用是协调View和Model把数据展示到View上

Controller可以直接和Model通信,也可以直接和View通信。Model和View永远不能直接通信

5.iOS中哪些技术符合观察者模式

在iOS开发中 ,会接触到的经典观察者模式的实现方法有NSNotificationCenter,KVO,Delegate等

6.什么是工厂方法?

在基类中定义创建对象的一个接口,让子类决定实例化那个类,工厂方法让一个类的实例化延迟到子类中进行。工厂方法要解决的问题是对象的创建时机,它提供了一种拓展的策略,很好的符合了开放封闭原则,工厂方法也就做虚构造器

7.什么是代理模式,实现代理需要注意什么

在项目中我们经常会用到代理的设计模式,这是iOS的一种消息传递方式,也可以通过这种方式来传递一些参数,iOS中对代理支持的很好,有代理对象、委托者、协议三部分组成

协议:用来指定代理双方可以做什么,必须做什么

代理:根据制定的协议,完成委托方需要实现的功能

委托:根据制定的协议,指定代理去完成什么功能

8.简述Storyboard和Xib的联系和区别

联系:

都用来描述软件界面

都用Interface Builder工具来编辑

区别:

Xib是轻量级的,用来描述局部的UI界面

Storyboard是重量级的,用来描述整个软件多个界面,并且能展示多个界面之间的跳转关系

9.简述UITableView的Cell的重用机制

UITableView维护了一个服用队列,当Cell从屏幕上消失时,就会进入复用队列,若没有就会重新创建一个Cell。重用机制通过对Cell的重复使用,来减少内存的使用

10.如何用UIScrollView实现无限加载多张图片

创建一个UIScrollView,高度为屏幕的高度,宽度为三倍的屏幕宽度,设置为按屏幕滑动,设置偏移量(屏幕宽度,0)。第一个屏幕宽度和第三个屏幕宽度贴一个UIImageView显示图片的前一张和后一张,中间贴一个UIScrollView,大小为屏幕的大小,在上面贴一个UIImageView显示要显示的图片。当向左滑动,通过UIScrollView的代理方法,检测到之后将第一个屏幕宽度和第三个屏幕宽度上的UIImageView改为图片的前一张和后一张,中间的scrollView上的UIImageView上的图片改为当前图片,同时设置最外部的UIScrollView的偏移量为(屏幕宽度,0);向右滑动与向左滑动同理。

你可能感兴趣的:(iOS开发知识点总结(三))