美文网首页
iOS开发知识点总结(三)

iOS开发知识点总结(三)

作者: 4b5317535aa5 | 来源:发表于2016-07-02 01:54 被阅读26次

    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开发知识点总结(三)

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