好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

iOS开发项目化入门问题文库.doc

5页
  • 卖家[上传人]:ss****gk
  • 文档编号:280445131
  • 上传时间:2022-04-21
  • 文档格式:DOC
  • 文档大小:36.50KB
  • / 5 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • iOS开发项目化入门问题1.1题目:iOS框架分为哪儿个层次?简述iOS框架每个层次的主耍作川?答案:iOS框架主要分为四个层次,分别为CoreOS层、CoreServices层、Media层、Cocoa Touch层 英中,Core OS层提供了最低级的、系统级的服务,包括安全管理、设备驱动、线程管理等内容 CoreServices层作为核心服务层,主要提供诸如字符串管理、集合管理、网络操作等服务,此 外还提供了硬件特性的服务,包括GPS、加速计等Media层主要负责图形与多媒体服务,包含 Core Graphics、Core Animation等与图形、视频和音频和关的功能模块Cocoa Touch层直 接向iOS应用程序提供各种基础功能的支持,包含一个UIKit框架,该框架提供了各种可视化控件 供应用程序使用,也定义了应用程序的默认行为和事件处理结构1.2 题 H:IBOutlet和IBAction两个关键字的作用是什么?答案:控制器使用IBOutlet來引用Storyboard-1'的对象,该关键字声明了一个输出口,并将其指向了 某个控件,仅仅是告诉Interface Builder,被IBOutlet修饰的实例变量将被连接到Storyboard 中的対象。

      控制器使用IBAction来修饰方法,该关键字告诉Interface Builder,该方法是一个操 作,并且町以被某个控件所他发2.1题目:简述什么是懒加载?答案:懒加载乂称Z为"延迟加载",程序启动的时候不立刻使用的资源先不加载,当程序运行的时候 中需要使用资源的时候再去加载它懒加载的实质是重写get方法,在成员变量为nil的情况下进 行初始化,保证其只会被加载一次2.2题目:简述UlView'l'frame和bounds属性的区别?答案:framed示控件所在的矩形框在父控件中的位置和尺寸,以父控件的左上角为坐标原点;bounds 表示控件所在矩形框的位过和尺寸,以自己的左上角为处标原点,因此它的X和Y的值一般为03.1 题 H:简述UITableViewCell的复用原理答案:UITableView通过重用单元格:來达到节省内存的目的,其原理比较简单,在初始化UITableViewCell时传入一个特定的字符串來标识,这样就指定了单元格的类型,当滚动屏幕列 表时,移出窗口的UITableViewCell会被放入一个対象池内,等待重川,当UITableView要求 dataSource返冋UITableViewCell时,先通过该字符串标识到对彖池中查找对应类型的UITableViewCell,如來对象池中有,就直接使用,如呆没冇,就传入这个字符串标识來初始化 一个 UITableViewCell 对象。

      3.2题忖:实现表视图显示需耍设置UITableView的什么属性、实现什么协议?答案:耍想实现简单的表格,需耍指怎该表格视图的dataSource和delegate属性,即指立衣视图的数 据源对彖和代理对彖,同时,这些对彖需要必须实现UITableViewDataSource协议,为农视图 设定组数、每组对应的行数、每行对应的内容,根据需求,可根据需求來实现UITableViewDelegate协议,例如指定表格行的行高4.1题目:简述视图控制器的生命周期答案:当一个视图控制器被创建,并冃显示在屏幕上的代码执行顺序如下:(1) alloc:创建对象,分配空间2) init (initWithNibName):初始化对象3) loadView:从nib载入视图,通常这一步不需要去干涉,除非xib文件不存在(4) viewDidLoad:载入完成,可以进行自定义数据以及动态创建其它控件5) viewWillAppear:视图将出现在屏幕之前,这个视图马上会被展现在屏幕上6) viewDidAppear:视图U经在屏幕上演染完成4.2题目:简述导航控制器的组成部分答案:导航控制器主要山导航条、工具条、导航视图和内容视图组成,导航条位于屏幕顶端、工具条位 于屏幕底部,显示视图指的是屏幕可以看到的所有内容,而内容视图包含导航控制器中要展示的 所有视图。

      其中,导航条是一个栈结构的容器,它包含有多个UINavigationltem, 一个UINavigationltem是山标题,左边N个按钮、右边N个按钮组成的,并且每个按钮都是一个UIBarButtonltem 控件5.1题目:谈谈你对MVC的理解答案:MVC是Model・View・Controller的简称,即模型■视图■控制器,它是一种设计模式,强制性地把应用程序的输入、处理和输出分开MVC模式包含三个重要的内容,分别为模型、视图、控 制器,它们各B担负着不同的任务,具体如下:(1) 视图:它是用户看到并与之交互的界面,视图向用户显示相关的数据,并接受用户的输入, 视图不进行任何业务逻辑的处理2) 模型:封装了应川程序的数据,并立丁•了操控和处理该数据的逻辑和运算一个模型対象 可以为多个视图提供数据3) 控制器:控制器是调节所有工作的调节器,它能够访问模型中的数据,然后用视图去显示,并根据要求监听爭件和操作数据总而言之,MVC的处理过程是:首先控制器接受用八的请求,调用和应的模型來进行业务处理,并返回数据给控制器,控制器调用相应的视图来显示处理的结果,并通过视图呈现给用户5.2题目:简述你对委托、通知和KV0的理解,并指出它们的不同之处?答案:委托:它通常用于一个对彖"代表"另外一个対彖和程序中的其它対象进行交互。

      通知:每个应用程序都会冇一个通知中心实例,专门负责协助不同对象Z间的通信通知和代理都能够完成对象Z间的通信,不同的是代理只能表示一对一的通信,而通知则可以表 示对象间"一对多"的通信,可以为两个无引用关系的对象通信KVO机制:表示键值观察者,它提供了一种机制,当指定的被观察对彖的属性被修改后,则会B动地通知相应的观察者6.1题目:编写获収应用程序Home目录、Documents S录与tmp U录全路径的代码?答案:(1) 获取Homeli录:NSString *home = NSHomeDirectoryO;(2) 获取Documents目录:NSArray *array=NSSearchPathForDirectoriesInDomainsCNSDocumentDirector^NSUserDomainMas^YES);NSString *path = [array objectAtIndex:0];(3)获取tmp目录:NSString *tmpDir = NSTemporaryDirectoryO;6.2题目:iOS平台是怎么做到数据持久化的? CoreData和SQLite有无必然联系?答案:iOS中可以有五种持久化数据的方式:plist文件,偏好设這、对象归档、SQLite3和Co「eData° core datan;以使你以图形界血的方式快速的尢义app的数据模型,同时在你的代码中容易获取 到它。

      core data提供了基础结构去处理常川的功能,例如保存,恢复,撤销和重做,允许你在 app中继续创建新的任务在使JlJcore data的时候,你不用安装额外的数据库系统,因为core data使用内置的sqlite数据库core data将你app的模型层放入到一组定义在内存中的数据对 彖core data会追踪这些対彖的改变,同时可以根据需要做相反的改变,例如用户执行撤销命 令当core data在对你app数据的改变进行保存的时候,core data会把这些数据归档,并永久 性保存mac os x中sqlite库,它是一个轻量级功能强大的关系数据引擎,也很容易嵌入到应用 程序可以在多个平台使用,sqlite是一个轻量级的嵌入式SQL数据库编程与core data框架不 同的是,sqlite是使用程序式的,sql的主要的API来直接操作数据表CoreData不是一个关系 型数据库,也不是关系型数据库管理系统(RDBMS)o虽然Core Dta支持SQLite作为-•种存储类 型,但它不能使用任意的SQLite数据库Core Data在使用的过程种白己创建这个数据库Core Data支持对一、对多的关系。

      8.1题目:核心动画有儿种类型,请简单描述一下答案:核心动画主要分为属性动画、转场动画、动画组,其中,属性动画乂包扌舌基本动画和关键帧动画 属性动画可以控制CALayer的动画属性持续改变,从而使外观看上去形成动画效杲动画组可以将多个动画绑定为一组,实现多个动画并发执行的效果转场动画是通过CALayer控制UlView内了控件的过渡动画,从而实现移岀屏幕或者移入屏幕的 效果基本动画只要指能了起始值和结束值,该CALayer的动画属性就会由起始值变化到结束值关键帧动画可以为动州i属性指立多个值,图层的动画属性会从第一个属性值开始,依次经历每个 属性值,直到变成最后一个属性值8.2题目:简述U IView与CLayer有什么区别?答案:(1) UlView是iOS系统中界面元素的基础,所有的界而元素都是继承口它它木身完全是由 CoreAnimation來实现的它真正的绘图部分,是由一个CALayer类來管理UlView本身更像 是一个CALayer的管理器,访问它的跟绘图和跟坐标有关的属性2) UlView有个重要属性layer,可以返回它的主CALayer实例3) UlView的CALayer类似UlView的子View树形结构,也可以向它的layer上添加子 layer,來完成某些特殊的农示。

      即CALayer层是可以嵌套的4) UlView的layer树形在系统内部,被维护着三份copy分别是逻辑树,这里是代码可 以操纵的;动画树,是一个中间层,系统就在这一层上更改属性,进行各种渲染操作;显示树, 其内容就是当前止被显示在屏幕上得内容5) 动画的运作:对UlView的subLayer (非主Layer )属性进行更改,系统将自动进行动画 生成,动画持续时间的缺省値似乎是0.5秒6) 处标系统:CALayer的处标系统比UlView多了一个anchorPoint属性,使用CGPoint结构 表示,值域是0~1 ,是个比例值这个点是各种图形变换的处标原点,同时会更改layer的 position的位置,它的缺省值是{0.5,0.5},即在layer的中央7) 渲染:当更新层,改变不能立即显示在屏幕上当所冇的层都准备好时,可以调用 setNeedsDisplay方法来重绘显示8) 变换:要在一个层中添加一个3D或仿射变换,可以分别设置层的transform或 affineTra nsform 属性9) 变形:Quartz Core的渲染能力,使二维图像可以被自由操纵,就好像是三维的。

      图像 可以在一个三维坐标系中以任意角度被旋转,缩放和倾斜CATransform3D的一套方法提供 了一些魔术般的变换效果。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.