iOS面试题大全66-85

警告:一定要把英文题目过一遍,有些公司的题目故意弄成英文的!!!

66.        Difference between shallow copy and deep copy?

1>    浅拷贝:指针(地址)拷贝,不会产生新对象

2>    深拷贝:内容拷贝,会产生新对象

67.        What is advantage of categories? What is difference between implementing a category and inheritance?

1>    分类可以在不修改原来类模型的基础上拓充方法

2>    分类只能扩充方法、不能扩充成员变量;继承可以扩充方法和成员变量

3>    继承会产生新的类

68.        Difference between categories and extensions??

1>    分类是有名称的,类扩展没有名称

2>    分类只能扩充方法、不能扩充成员变量;类扩展可以扩充方法和成员变量

3>    类扩展一般就写在.m文件中,用来扩充私有的方法和成员变量(属性)

69.       Difference between protocol in objective c and interfaces in java??

1> Java的接口中声明的方法必须都实现

2> Oc的protocol中声明的方法并不一定要实现

70.        What are KVO and KVC?

1>   KVC是键值编码,可以通过一个字符串的key(属性名)修改对象的属性值

2>   KVO是键值监听,可以监听一个对象属性值的改变

71.        What is purpose of delegates??

1>    两个对象之间传递数据和消息

2>    解耦,拆分业务逻辑

72.       What are mutable and immutable types in Objective C??

1> mutable是可变类型,比如NSMutableArray,可以动态往里面添加元素

2> immutable是不可变类型,比如NSArray,固定的存储空间,不能添加元素

73.       When we call objective c is runtime language what does it mean??

1>    动态绑定:对象类型在运行时才真正确定

2>    多态性

3>    消息机制

74.        what is difference between NSNotification and protocol??

1>    通过NSNotification可以给多个对象传递数据和消息

2>    通过protocol(代理模式)只能给一个对象传递数据和消息

75.    What is push notification??

1>    本地推送:程序内部弹出通知到用户设备

2>    远程推送:由推送服务器推送通知到用户设备

76.    What is Polymorphism??

多态:父类指针指向子类对象

77.    What is Singleton??

单粒:保证程序运行过程中,永远只有一个对象实例

目的是:全局共享一份资源、节省不必要的内存开销

78.    What is responder chain??

? 响应者链:

l      UIResponder有一个nextResponder属性,通过该属性可以组成一个响应者链,事件或消息在其路径上进行传递

l      如果UIResponder没有处理传给它的事件,会将未处理的消息转发给自己的nextResponder

79.    Difference between frame and bounds??

1>   frame以父控件的左上角为坐标原点

2>   bounds以控件本身的左上角为坐标原点

80.    Difference between method and selector??

通过一个selector可以找到方法地址,进而调用一个方法

81.    Is there any garbage collection mechanism in Objective C.??

1>   OC 1.0没有垃圾回收

2>   OC 2.0有垃圾回收,只能用在Mac上

3>   iOS中有ARC机制,是编译器特性,垃圾回收是运行时特性

82.    What is NSOperation queue??

1>    用来存放NSOperation对象的队列,可以用来异步执行一些操作

2>    一般可以用在网络请求等耗时操作

83.    What is lazy loading??

延迟加载:比如控制器的view,在第一次用到view时才会调用loadView方法进行创建

84.    Can we use two tableview controllers on one viewcontroller?

从技术角度上分析,一个控制器内部添加2个表格控制器是没有问题的

85.    Can we use one tableview with two different datasources? How you will achieve this???

从对象属性上分析,tableView只有一个dataSource属性。当然,真要使用2个不同的数据源,还是有其他办法解决的

时间: 2025-01-15 00:25:57

iOS面试题大全66-85的相关文章

IOS-5-面试题2:黑马程序员IOS面试题大全

五.UI控件 1. 怎么解决缓存池满的问题(cell) ios中不存在缓存池满的情况,因为通常我们ios中开发,对象都是在需要的时候才会创建,有种常用的说话叫做懒加载,还有在UITableView中一般只会创建刚开始出现在屏幕中的cell,之后都是从缓存池里取,不会在创建新对象.缓存池里最多也就一两个对象,缓存池满的这种情况一般在开发java中比较常见,java中一般把最近最少使用的对象先释放. 2. CAAnimation的层级结构 3. UIButton与UITableView的层级结构 1

ios面试题大全

1.写一个NSString类的实现 + (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSStringEncoding)encoding; + (id) stringWithCString: (c*****t char*)nullTerminatedCString encoding: (NSStringEncoding)encoding { NSString  *obj; obj = [self alloc

IOS-4-面试题1:黑马程序猿IOS面试题大全

一.多线程网络 1. 多线程的底层实现? 1> 首先搞清楚什么是线程.什么是多线程 2> Mach是第一个以多线程方式处理任务的系统.因此多线程的底层实现机制是基于Mach的线程 3> 开发中非常少用Mach级的线程,由于Mach级的线程没有提供多线程的基本特征,线程之间是独立的 4> 开发中实现多线程的方案 l C语言的POSIX接口:#include <pthread.h> l OC的NSThread l C语言的GCD接口(性能最好.代码更精简) l OC的NSO

iOS面试题大全1-24

1.风格纠错题 2. 什么情况使用 weak 关键字,相比 assign 有什么不同? 什么情况使用 weak 关键字? 在 ARC 中,在有可能出现循环引用的时候,往往要通过让其中一端使用 weak 来解决,比如: delegate 代理属性 自身已经对它进行一次强引用,没有必要再强引用一次,此时也会使用 weak,自定义 IBOutlet 控件属性一般也使用 weak:当然,也可以使用strong.在下文也有论述:<IBOutlet连出来的视图属性为什么可以被设置成weak?> 不同点:

iOS面试题大全25-55

25. _objc_msgForward函数是做什么的,直接调用它将会发生什么? _objc_msgForward是 IMP 类型,用于消息转发的:当向一个对象发送一条消息,但它并没有实现的时候,_objc_msgForward会尝试做消息转发. 我们可以这样创建一个_objc_msgForward对象: IMP msgForwardIMP = _objc_msgForward; 在上篇中的<objc中向一个对象发送消息[obj foo]和objc_msgSend()函数之间有什么关系?>曾提

IOS-4-面试题1:黑马程序员IOS面试题大全

一.多线程网络 1. 多线程的底层实现? 1> 首先搞清楚什么是线程.什么是多线程 2> Mach是第一个以多线程方式处理任务的系统,因此多线程的底层实现机制是基于Mach的线程 3> 开发中很少用Mach级的线程,因为Mach级的线程没有提供多线程的基本特征,线程之间是独立的 4> 开发中实现多线程的方案 l C语言的POSIX接口:#include <pthread.h> l OC的NSThread l C语言的GCD接口(性能最好,代码更精简) l OC的NSOp

iOS面试题大全56-65

56.        #import 跟#include.@class有什么区别?#import<> 跟 #import”"又什么区别? 1>   #import和#include都能完整地包含某个文件的内容,#import能防止同一个文件被包含多次 2>   @class仅仅是声明一个类名,并不会包含类的完整声明;@class还能解决循环包含的问题 3>   #import <> 用来包含系统自带的文件,#import “”用来包含自定义的文件 57.

半年努力,我终于把这100家企业iOS面试题整理完了(附答案)!

####100家知名企业今年来iOS面试题合集: 你要的这里都有: 企业要的这里也有: 从基础开始到进阶.深入底层 整理出188个面试题,全是干货 这些全部是题目跟类目,每个题目都会有相对的答案,由于字数太多所以我整理出一个文档,文档获取地址,作者创建的iOS行业交流群:763164022,加群在群文件下载 ####目录展示: 1.swift和oc的区别2.编译链接3.synthesize & denamic4.在项目开发中常用的开发工具有哪些?5.UITableView & UIColl

2019最新iOS面试题及答案

1. Object-C的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-C的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成C++的多重继承;Category是类别,一般情况用分类好,用Category去重写类的方法,仅对本Category有效,不会影响到其他类与原有类的关系. 2. import 跟#include 又什么区别,@class呢, #import<> 跟 #import"&qu