这个栏目将持续更新–请iOS的小伙伴关注!
(答案不唯一,仅供参考,欢迎留言)
目录:
10、数据库选择原因(realm 、coreData、FMDB、Sqlite)
11、数据库做过哪些优化
12、脚本打包原理
13、app运行过程中,同时最多有几个线程,怎么实现的高并发
17、iOS atomatic nonatomic区别和理解
18、#import 跟 #include 有 什 么 区 别 , @class 呢 , #import<> 跟 #import” ”有什么区别?
19、Object-c 的类可以多重继承么?可以实现多个接口么?Category 是什 么?重写一个类的方式用继承好还是分类好?为什么?
20、属性 readwrite,readonly,assign,retain,copy,nonatomic 各是 什么作用,在那种情况下用?
21、对于语句 NSString*obj=[[NSDataalloc]init];obj 在编译时和运行时 分别时什么类型的对象?
22、常见的 objective-c 的数据类型有那些, 和 C 的基本数据类型有什 么区别?如:NSInteger 和 int
23、Objective-C 如何对内存管理的,说说你的看法和解决方法?
24、原子(atomic)跟非原子(non-atomic)属性有什么区别?
25、ObjectC 中创建线程的方法是什么?如果在主线程中执行代码,方 法是什么?如果想延时执行代码、方法
又是什么?
26、浅复制和深复制的区别?
28、类别和类扩展的区别
30、类变量的@protected,@private,@public,@package,声明各有什么 含义?
31、简述 OC 中内存管理机制。与 retain 配对使用的方法是 dealloc 还 是 release,为什么?需要与 alloc 配对使用的方法是 dealloc 还是 release,为什么…
32、说说响应链
34、RunLoop 是什么?
35、简述你对 UIView、UIWindow 和 CALayer 的理解
36、iOS 的动态性
39、什么情况使用 weak 关键字,相比 assign 有什么不同?
42、用 @property 声明的 NSString(或 NSArray,NSDictionary)经常使用 copy 关键字,为什么?如果改
用 strong 关键字,可能造成什么问题?
43、怎么理解浅拷贝与深拷贝?
46、@protocol 和 category 中如何使用 @property?
47、category 和 extension 有什么区别?category 是如何加载的?category 的方法覆盖是怎么处理的?
48、@synthesize 和 @dynamic 分别有什么作用?
49、ARC 下,不显式指定任何属性关键字时,默认的关键字都有哪些?
50、在有了自动合成属性实例变量之后,@synthesize 还有哪些使用场景?
51、一个 objc 对象如何进行内存布局(考虑有父类的情况)?
52、runtime 如何通过 selector 找到对应的 IMP 地址(分别考虑实例方法和类方法)?Selector、Method 和 IMP 的有什么区别与联系?
54、objc_msgSend、_objc_msgForward 都是做什么的?OC 中的消息调用流程是怎样的?
55、能否向编译后得到的类中增加实例变量?能否向运行时创建的类中添加实例变量?为什么?
58、以 + scheduledTimerInterval… 的方式触发的 timer,在滑动页面上的列表时,timer 会暂定回调,为什么?如何解决?WithTime
67、dispatch_barrier_async 的作用是什么?
72、什么是事件响应链?
73、当我们要做一些基于 CALayer 的动画时,有时需要设置 layer 的锚点来配合动画,这时候我们需要注意什么?
80、介绍一下观察者模式
81、在一个HTTPS连接的网站里,输入账号密码点击登录后,到服务器返回这个请求前,中间经历了什么
82、在一个app中间有一个button,在你手触摸屏幕点击后,到这个button收到点击事件,中间发生了什么
84、键路径(keyPath)、键值编码(KVC)、键值观察(KVO)
85、NSNotification、Block、Delegate和KVO的区别
89、Core Data的功能
90、堆和栈的区别
91、线程与进程的区别和联系?
92、多线程编程
96、解析TCP慢启动特性?
100、谈下Objective C都有哪些锁机制,你一般用哪个?