1.形成tableView卡顿的缘由有哪些? 1.最经常使用的就是cell的重用, 注册重用标识符若是不重用cell时,每当一个cell显示到屏幕上时,就会从新建立一个新的c...

1.形成tableView卡顿的缘由有哪些? 1.最经常使用的就是cell的重用, 注册重用标识符若是不重用cell时,每当一个cell显示到屏幕上时,就会从新建立一个新的c...
去年随着疫情的到来,我也失业了。一边忙着抵抗病毒,一边还得继续准备面试。又该准备“造火箭”了,去了继续“拧螺丝”,下面是自己最近的一些总结,也会在后面的面试中,遇到的面试问题...
一、在pod文件中添加以下代码导入SDK pod 'Stripe' 二、在AppDelegate.m中引入并初始化sdk #import //配置stripe支付 [[STP...
AutoreleasePool实现原理:
编译器会将 @autoreleasepool {} 改写为:
void * ctx = objc_autoreleasePoolPush; {} objc_autoreleasePoolPop(ctx);
objc_autoreleasePoolPush:
把当前next位置置为nil,即哨兵对象,然后next指针指向下一个可入栈位置,
AutoreleasePool的多层嵌套,即每次objc_autoreleasePoolPush,实际上是不断地向栈中插入哨兵对象。
objc_autoreleasePoolPop:
根据传入的哨兵对象找到对应位置。
给上次push操作之后添加的对象依次发送release消息。
回退next指针到正确的位置。
OC的内存管理内存管理的困境 1、当我们要释放一个堆空间时,要确保这个堆空间的所有指针都使用完毕,这时候堆空间才能释放,避免提前释放 2、释放指针指向的堆空间时,要确保哪些指针指向这个堆空...
优化启动时间 (1)内嵌的dylib尽可能少,或者合并起来。 (2)Rebase/Binding减少_DATA中需要修正的指针,对于OC来说减少class、selctor、c...
一、XMPP简介 XMPP = The Extensible Messaging and Presence Protocol(可扩展通讯和表示协议) XMPP 协议是基于 X...
卡顿产生的原因 在 VSync 信号到来后,系统图形服务会通过 CADisplayLink 等机制通知 App,App 主线程开始在 CPU 中计算显示内容,比如视图的创建、...
话不多说,直接上干货~ 1.程序员刷题网站 https://leetcode-cn.com/problemset/all/ leetcode是一个十分有趣好用的各种编程语言都...
什么是进程 在系统中正在运行的一个应用程序。 每个进程之间是独立的,每个进程均运行在其专用而且受保护的内存空间内。 什么是线程 一个进程要想执行任务,必须得有一个线程,而且每...
KVO 全称为Key Value Observing,键值监听机制,由NSKeyValueObserving协议提供支持,NSObject类继承了该协议,所以NSObject...
内存管理的困境 1、当我们要释放一个堆空间时,要确保这个堆空间的所有指针都使用完毕,这时候堆空间才能释放,避免提前释放 2、释放指针指向的堆空间时,要确保哪些指针指向这个堆空...
面试题 1.讲讲 RunLoop,项目中有用到吗? 应用1:创建常驻线程 + (void)networkRequestThreadEntryPoint:(id)__unuse...
一、runtime简介 Runtime简称运行时。OC就是运行时机制,其中最主要的是消息机制。对于C语言,函数的调用在编译的时候会决定调用哪个函数。对于OC的函数,属于动态调...
一、RAC简介 1、RAC全称:ReactiveCocoa, Github 一个开源框架 2、ReactiveCocoa:函数响应编程框架 3、目的:事件的监听,接管了苹果所...