https://www.jianshu.com/p/d884f3040fda
这里的题库走查。
iOS
2 Objective_C语言特性相关问题
https://www.jianshu.com/p/e70bac443cf2
3 runtime相关
能否向编译后的类中增加实例变量?
不能。 编译后,该类已经完成了实例变量的布局,不能再增加实例变量。
但可以向动态添加的类中增加实例变量。
6 Block原理、Block变量截获、Block的三种形式
局部变量被编译成值形式,而静态变量被编成指针形式,全局变量并未截获。
而__block修饰的变量也是以指针形式截获的,并且生成了一个新的结构体对象
一般情况下,如果我们要对block截获的局部变量进行赋值操作需添加__block
修饰符,而对全局变量,静态变量是不需要添加__block修饰符的。
另外,block里访问self或成员变量都会去截获self。
对全局block进行copy,仍是全局block。
另外,__block变量在copy时,由于__forwarding的存在,
栈上的__forwarding指针会指向堆上的__forwarding变量,
而堆上的__forwarding指针指向其自身,
所以,如果对__block的修改,实际上是在修改堆上的__block变量。
9 2019 iOS面试题-----多线程相关之NSOperation、NSOperationQueue、NSThread+runloop实现常驻线程、加锁
- iOS 多线程:『NSOperation、NSOperationQueue』详尽总结
https://www.jianshu.com/p/4b1d77054b35
10 RunLoop数据结构、RunLoop的实现机制、RunLoop的Mode、RunLoop与NSTimer和线程
怎样保证子线程数据回来更新UI的时候不打断用户的滑动操作?
当我们在子请求数据的同时滑动浏览当前页面,如果数据请求成功要切回主线程更新UI,
那么就会影响当前正在滑动的体验。
我们就可以将更新UI事件放在主线程的NSDefaultRunLoopMode上执行即可,
这样就会等用户不再滑动页面,主线程RunLoop由UITrackingRunLoopMode切换到
NSDefaultRunLoopMode时再去更新UI
[self performSelectorOnMainThread:@selector(reloadData) withObject:nil
waitUntilDone:NO modes:@[NSDefaultRunLoopMode]];
算法
1 七种常见的数组排序算法整理(C语言版本)
冒泡排序
选择排序
直接插入排序
二分插入排序:左边部分排好序的,插入时二分查找,只是比较次数少了。
希尔排序:插入排序改进,按gap,除2递减插入排。
快速排序
堆排序
+
基数排序:最高位优先(Most Significant Digit first)法,简称MSD法,从高位到低位分组合并。
最低位优先(Least Significant Digit first)法,简称LSD法,从低位到高位依次分组,依次合并。
计数排序:空间换时间,无比较,计值,累加定位。
7 树、二叉树、二叉搜索树
https://www.jianshu.com/p/47e632985f11
iOS
5 iOS 你在项目中用过 runtime 吗?举个例子
1.Aspects(AOP必备,“取缔” baseVC,无侵入埋点)
2.MJExtension(JSON 转 model,一行代码实现 NSCoding 协议的自动归档和解档)
3.JSPatch(动态下发 JS 进行热修复)
4.NullSafe(防止因发 unrecognised messages 给 NSNull 导致的崩溃)
5.UITableView-FDTemplateLayoutCell(自动计算并缓存 table view 的 cell 高度)
6.UINavigationController+FDFullscreenPopGesture(全屏滑动返回)
48 iOS Core Data的6成员对象?
https://www.jianshu.com/p/84ccd9eac508
79 iOS Category 的实现原理,以及 Category 为什么只能加方法不能加属性?
https://www.jianshu.com/p/8aa63f7e98d1
- Category 特性在 iOS 组件化中的应用与管控 https://tech.meituan.com/2018/11/08/ios-category-module-communicate.html
- 深入理解Objective-C:Category https://tech.meituan.com/2015/03/03/
144 iOS isa指针?(对象的isa,类对象的isa,元类的isa都要说)
https://www.jianshu.com/p/9e975a1cab93