1、AFNetworking实现原理
2、iOS音频采集有几种方式
在iOS中有很多方法可以进行音视频采集。如 AVCaptureDevice, AudioQueue以及Audio Unit。其中 Audio Unit是最底层的接口,它的优点是功能强大,延迟低; 而缺点是学习成本高,难度大。对于一般的iOS应用程序,AVCaptureDevice和AudioQueue完全够用了。但对于音视频直播,最好还是使用 Audio Unit 进行处理,这样可以达到最佳的效果,著名的 WebRTC 就使用的 Audio Unit 做的音频采集与播放。
详见:https://blog.csdn.net/garrylea/article/details/78025283
3、结构体的存储结构是什么样的 例如struct中含有一个int,一个char,需开辟多大空间,是如何存储的
提到结构体,相信大家都知道元素存储要对齐,话是没有错,只是这个“对齐”里面包含了很多微妙的东西。首先详细的给出结构体内存分配的原则吧:编译器按照成员列表顺序一个接一个地给每个成员分配内存。只有当存储成员时需要满足正确的边界对齐要求时,成员之间才可能出现用于填充的额外内存空间。
详见:https://blog.csdn.net/u014800094/article/details/52275781
4、数据库的安全线程问题,是如何处理的
sqlite支持三种不同的线程模式:
1)单线程single-thread。这种模式中,所有的互斥锁都失效,并且sqlite超过一个线程就不能安全的使用。
2)多线程multi-thread。这种模式中,sqlite可以安全的被多个线程使用,假如此时在两个或者更多线程中同时使用不止一个database的连接。只要此时没有两个或者更多的线程同时使用一个database的连接。
3)串行化serialized。在串行化模式中,sqlite可以不受限制的使用安全的被多个线程使用。
线程模式可以在编译阶段(当sqlite库从源码中进行编译时),或者在启动阶段(当准备使用sqlite的应用程序正在初始化时),或者运行阶段(当新的sqlite数据库连接正在被创建时)。一般上来讲,运行阶段可以覆盖启动阶段,而启动阶段可以覆盖编译阶段。除了,单线程模式一旦选定就不能被覆盖更改。
默认模式是串行化模式。
详见:https://blog.csdn.net/chinaclock/article/details/48623741
5、sdwebimage如何处理多线程
@synchronized这个结构发挥了和锁一样的作用:它避免了多个线程同时执行同一段代码。和使用NSLock进行创建锁、加锁、解锁相比,在某些情况下@synchronized会更方便、更易读。SDWebImage就是使用了@synchronized来保证线程安全的,内部使用@synchronized来使得代码获得原子性,从而保证多线程安全。
6、iOS实现GIF的播放
详见:https://www.cnblogs.com/wfwenchao/p/5671663.html
7、runloop有几种模式,实现原理
详见:https://www.jianshu.com/p/911549ae4bf8
8、table中cell加载图片,table滑动如何停下来才去加载 停停滑滑如何终止和开始加载图片
9、实现颜色渐变
10、图文混排
11、如何制作图片圆角 如何绘制的
12、如何设计架构
13、函数指针,与指针函数有啥区别
14、coredata如何做线程存储安全的
详见:https://blog.csdn.net/sodaslay/article/details/77171016
15、iOS中有几种锁
详见:https://blog.csdn.net/qq_30513483/article/details/52349968