1 / 19
文档名称:

ios面试试题.docx

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

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

分享

预览

ios面试试题.docx

上传人:q1188830 2022/6/20 文件大小:27 KB

下载得到文件列表

ios面试试题.docx

相关文档

文档介绍

文档介绍:1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么?
  答: Object-c的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成C++的多重继承很简单, 比如[[[NSString alloc]initialWithFormat”Hey you!”] autorelease], 即将一个NSString对象加入到最内层的系统内存池, 当我们释放这个内存池时, 其中的对象都会被释放.
  9. 原子(atomic)跟非原子(non-atomic)属性有什么区别?
  1. atomic提供多线程安全。是防止在写未完成的时候被另外一个线程读取,造成数据错误。
  2. non-atomic:在自己管理内存的环境中,解析的访问器保留并自动释放返回的值,如果指定了 nonatomic ,那么访问器只是简单地返回这个值。
    11. 内存管理的几条原则时什么?
  需要手动释放?在和property结合的时候怎样有效的避免内存泄露?
  谁申请,谁释放
  遵循Cocoa Touch的使用原则;
  内存管理主要要避免“过早释放”和“内存泄漏”,对于“过早释放”需要注意***@property设置特性时,一定要用对特性关键字,对于“内存泄漏”,一定要申请了要负责释放,要细心。
  关键字alloc 或new 生成的对象需要手动释放;
  设置正确的property属性,对于retain需要在合适的地方释放,
  ?
  Profile-> Instruments ->Time Profiler
  13. Object C中创建线程的方法是什么?如果在主线程中执行代码,方法是什么?如果想延时执行代码、方法又是什么?
  线程创建有三种方法:使用NSThread创建、使用GCD的dispatch、使用子类化的
NSOperation,然后将其加入NSOperationQueue;在主线程执行代码,方法是performSelectorOnMainThread,如果想延时执行代码可以用performSelectornThread:withObject:waitUntilDone:
   SDK中如何实现MVC的开发模式
  MVC是模型、试图、控制开发模式,对于iOS SDK,所有的View都是视图层的,它应该独立于模型层,由视图控制层来控制。所有的用户数据都是模型层,它应该独立于视图。所有的ViewController都是控制层,由它负责控制视图,访问模型数据。
  16. 类别的作用?继承和类别在实现中有何区别?
  答案:category 可以在不获悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除修改。
  并且如果类别和原来类中的方法产生名称冲突,则类别将覆盖原来的方法,因为类别具有更高的优先级。
  类别主要有3个作用:
  (1)将类的实现分散到多个不同文件或多个不同框架中。
  (2)创建对私有方法的前向引用。
  (3)向对象添加非正式协议。
  继承可以增加,修改或者删除方法,并且可以增加属性。
    18. oc中的协议和java中的接口概念有何不同?
  答案:OC中的代理有2层含义,官方定义为 formal和informal protocol。前者和Java接口一样。
  informal protocol中的方法属于设计模式考虑范畴,不是必须实现的,但是如果有实现,
就会改变类的属性。
  其实关于正式协议,类别和非正式协议我很早前学****的时候大致看过,也写在了学****教程里
  “非正式协议概念其实就是类别的另一种表达方式“这里有一些你可能希望实现的方法,你可以使用他们更好的完成工作”。
  这个意思是,这些是可选的。比如我门要一个更好的方法,我们就会申明一个这样的类别去实现。然后你在后期可以直接使用这些更好的方法。
  这么看,总觉得类别这玩意儿有点像协议的可选协议。”
  现在来看,其实protocal已经开始对两者都统一和规范起来操作,因为资料中说“非正式协议使用interface修饰“,
  现在我们看到协议中两个修饰词:“必须实现(***@requied)”和“可选实现(***@optional)”。
  19. 什么是KVO和KVC?
  答案:kvc:键 – 值编码是一种间接访问对象的属性使用字符串来标识属性,而不是通过调用存取方法,直接或通过实例变量访问的机制。
  很多情况下可以简化程序代