这种可以达到多读单写的效果
iOS 多线程系列之dispatch_barrier_async 使用对字典数组等属性的读写操作为保证线程安全问题,需要加一个锁来保证。 用@synchronized 实现锁的机制,但是如果很多地方用这个机制,会造成互相等待,效率不高。 自建一...
这种可以达到多读单写的效果
iOS 多线程系列之dispatch_barrier_async 使用对字典数组等属性的读写操作为保证线程安全问题,需要加一个锁来保证。 用@synchronized 实现锁的机制,但是如果很多地方用这个机制,会造成互相等待,效率不高。 自建一...
前言 自2016年8月至2017年10月,今日头条iOS端已经进行了3轮安装包大小优化。 2016.08-2016.10第一期优化78MB -> 42MB (1)删除Swif...
前言:本文主要梳理iOS中如何使用常量、enum、宏,以及各自的使用场景。 重要的事情首先说:在iOS开发中请尽量多使用const、enum来代替宏定义(#define);随...
暴笑如雷了家人们
ios 一招解决烦人的NSNull( 结合 MJExtension)做ios开发的小伙伴肯定都深有体会,服务器返回给我们的null实在是太可恶了,严重点直接导致程序崩溃,好一点的时候特么也会让你界面上显示个null,这肯定是不符合要求的....
这是什么狗屎逻辑,oldValue既然已经是NSNull了,为什么还有可能是NSArray或NSDictionary??
草你妈!单 TableView 就不要标题起 UICollectionViewCell;
背景 UIButton在日常开发中经常用到,也经常需要做一些定制,这些定制很简单,就是改变image和title的位置而已,默认的image和title位置是这样的: 但你拿...
一、WWDC关于runtime的优化 WWDC2020-10163[https://developer.apple.com/videos/play/wwdc2020/1016...
iOS之武功秘籍 文章汇总[https://www.jianshu.com/p/07991e5b1c30] 写在前面 在上一篇文章中已经全面地介绍了类的结构,但是还剩下一个c...
fishhook是Facebook提供的一个动态修改链接mach-O文件的工具。利用MachO文件加载原理,通过修改懒加载和非懒加载两个表的指针达到C函数HOOK的目的。 前...
XCode12 模拟器静态库支持arm64架构引发的系列问题问题一:真机模拟器库无法合并,报错:have the same architectures (arm64) and can't be in the same fat outp...
LLDB全称Low Level Debugger ,并不是低水平的调试器,而是轻量级的高性能调试器,默认内置于Xcode中。能够很好的运用它会使我们的开发效率事半功倍,接下来...
引言 维基百科:编译语言(英语:Compiled language)是一种以编译器来实现的编程语言。它不像解释型语言一样,由解释器将代码一句一句运行,而是以编译器,先将代码编...
你理解错动态库和静态库的区别了,我们自己创建的动态库之所以也是动态库是因为他的mach-o文件是经过链接之后生成的,是编译链接的最终产物,而静态库只是.o文件的合集;
系统的动态库是直接存放在手机里面的,一般为tbd格式,tbd文件里面存放了系统动态库具体的位置,通过install_name就可以找到了这个动态库在手机上的位置了,然后启动时候dyld就知道去哪里加载这个系统动态库;
而我们自己生成的动态库是需要放在ipa里面的并且经过签名过的,所以不能给所有app使用;
一点拙见,欢迎讨论;
iOS里的动态库和静态库介绍 动态库形式:.dylib和.framework 静态库形式:.a和.framework 动态库和静态库的区别 静态库:链接时,静态库会被完整地复制到可执行文件中,被多次...
atomic是通过互斥锁实现的,虽然在源码objc4中 锁的名称是 spinLock, 但实际上spinLock是包装的mutex
iOS-底层原理 29:锁的原理iOS 底层原理 文章汇总[https://www.jianshu.com/p/412b20d9a0f6] 本文主要介绍常见的锁,以及synchronized、NSLock、...
之前零零碎碎看了很久的资料你一篇文章全包含了 你好意思吗 ? 这么干货的文章竟然没有赞~~~!!!
简书的地址,和github地址 都是你的地址和链接,然后我给你分享出去了,我看见有人举报,在这里跟你道歉.对不起
你好,我抄了你的文章.所有抄的原文连接都是的简述地址,可能没有标注原作者,在这里跟你道歉