![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS底层
iOS_小磊
QQ:171080857(问题:iOS开发)
2015年以来一直在做iOS开发,对iOS开发有比较全面的技术经验。喜欢交流开发技术知识,欢迎讨论。15年之后一直在杭州发展。平时喜欢总结一些技术开发知识,但是文字写作能力较差,直接上技术代码,欢迎交流。
展开
-
iOS暗黑(dark)模式适配
在iOS开发中,有些APP需要适配暗黑模式,下面介绍下暗黑模式需要开发者手动管理的任务。其他系统自动管理的任务不再说明不需要适配暗黑模式的话去info里面关闭即可Assets中的图片要选择一下支持暗黑模式,会有两种状态的图片,浅色深色各一套,系统会自动的更改颜色设置的话,UIColor新增了深色浅色方法,要注意深色只有在iOS13以上系统才生效class func setColor(_ light: UIColor, _ drak: UIColor) -> UIColor原创 2022-03-23 16:34:01 · 5205 阅读 · 0 评论 -
iOS横屏模式适配
iOS开发中,有时候会用到横屏模式,比如视频播放,科学计算器等。下满开发者就讲下横屏模式的注意事项屏幕方向info设置,建议只勾选竖屏就好了,不要勾选其他的,不然的话有些三方组件是强制竖屏的,会崩溃在AppDelgate中允许屏幕旋转func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask原创 2022-03-23 16:16:01 · 4035 阅读 · 0 评论 -
iOS runtime详解
因为Objc是一门动态语言,所以它总是想办法把一些决定工作从编译连接推迟到运行时。也就是说只有编译器是不够的,还需要一个运行时系统 (runtime system) 来执行编译后的代码。这就是 Objective-C Runtime 系统存在的意义,它是整个Objc运行框架的一块基石。Runtime消息传递一个对象的方法像这样[obj foo],编译器转成消息发送objc_msgSend(obj, foo),Runtime时执行的流程是这样的:首先,通过obj的isa指针找到它的 class ;在原创 2021-12-29 21:13:30 · 1245 阅读 · 0 评论 -
iOS底层原理
iOS atomic 和nonatomic的区别atomic会给get set加同步锁,多线程调用的时候会等待,保证了get set操作的完整性,但是会降低效率。但并不是绝对的线程安全,release操作不受set get影响可能会carsh深copy浅copy对不可变对象类型进行copy后得到的内存地址和原对象地址相同,是浅拷贝,其他都是深拷贝僵尸对象野指针已经被销毁的对象(不能再使用的对象),内存已经被回收的对象指向僵尸对象(不可用内存/已经释放的内存地址)的指针...原创 2021-12-29 14:28:21 · 464 阅读 · 0 评论