github 443 方案一 如果方案一添加host 还感觉慢,在host中删除 140.82.112.4 github.com,使用方案二 方案二
自动释放池的主要底层数据结构是:__AtAutoreleasePool、AutoreleasePoolPage 调用了autorelease的对象最终都是通过Autorele...
引用计数的存储 isa 从arm64架构开始,对isa进行了优化,变成了一个共用体(union)结构,还使用位域来存储更多的信息image.png extra_rc里面存储的...
copy和mutableCopy 拷贝的目的:产生一个副本对象,跟源对象互不影响 修改了源对象,不会影响副本对象 修改了副本对象,不会影响源对象 iOS提供了2个拷贝方法 1...
在iOS中,使用引用计数来管理OC对象的内存 一个新创建的OC对象引用计数默认是1,当引用计数减为0,OC对象就会销毁,释放其占用的内存空间 调用retain会让OC对象的引...
Tagged Pointer 从64bit开始,iOS引入了Tagged Pointer技术,用于优化NSNumber、NSDate、NSString等小对象的存储 在没有使...
内存布局,内存几大区域
GCD定时器 NSTimer依赖于RunLoop,如果RunLoop的任务过于繁重,可能会导致NSTimer不准时 而GCD的定时器会更加准时:不依赖于runloop,直接在...
CADisplayLink、NSTimer使用注意 CADisplayLink、NSTimer会对target产生强引用,如果target又对它们产生强引用,那么就会引发循环...
使用CADisplayLink、NSTimer有什么注意点? 循环引用,事件不准确 介绍下内存的几大区域 代码区、数据区、堆区、栈区、 讲一下你对 iOS 内存管理的理解 结...
iOS中的读写安全方案 思考如何实现以下场景同一时间,只能有1个线程进行写的操作同一时间,允许有多个线程进行读的操作同一时间,不允许既有写的操作,又有读的操作 上面的场景就是...
概述 dispatch_once能保证任务只会被执行一次,即使同时多线程调用也是线程安全的。常用于创建单例、swizzeld method等功能。它的功能比较简单,接下来看下...
atomic atomic用于保证属性setter、getter的原子性操作,相当于在getter和setter内部加了线程同步的锁可以参考源码objc4的objc-acce...
iOS中的线程同步方案 OSSpinLock os_unfair_lock pthread_mutex dispatch_semaphore dispatch_queue(D...
使用NSSetUncaughtExceptionHandler函数捕获 memset(&newSignalAction, 0,sizeof(newSignalAction))...
思考:如何用gcd实现以下功能异步并发执行任务1、任务2等任务1、任务2都执行完毕后,再回到主线程执行任务3 使用:group dispatch_barrier_async ...