首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS
订阅
轮子哥
更多收藏集
微信扫码分享
微信
新浪微博
QQ
40篇文章 · 0订阅
自研 iOS 热更新机制——OCPack技术方案总结
I. 方案简介 OCPack是一种 iOS 平台上 App 动态化技术方案,用户可以使用 Objective-C 语言编写待动态化的功能逻辑(生成.m文件),然后通过OCPack提供的工具链生成 patch 文件(.bin格式)。客户端则内置了一个基于 Native 环境的的虚…
抖音iOS最复杂功能的重构之路--播放器交互区重构实践
本文以抖音中最为复杂的功能,也是最重要的功能之一的交互区为例,和大家分享一下此次重构过程中的思考和方法,主要侧重在架构、结构方面。
iOS-图片高级处理(三、图片处理实践)
通过前面的学习图片高级处理1和图片高级处理2,我们知道在项目中因为性能原因,最好不要叠加太多UIView,CALayer层级的显示;但是很多情况又必须使用到图片的合成或是像素、滤镜处理。这里针这些常用的图片处理使用不同图形处理框架进行相关编码实践。项目代码。 大图片压缩处理及手…
Runtime源码 方法调用的过程
SEL其实就是一个不透明的类型它代表一个方法选择子,在编译期,会根据方法名字生成一个ID。 他是一个函数指针,指向方法实现的首地址。 对第五个参数cache传值为NO,因为在此之前已经做了一个查找这里CacheLookup NORMAL, CALL,这里是对缓存查找的一个优化。…
聊聊iOS开发中weak指针的原理
前几天在iOS圈内流传着“一个关于历年来weak的面试题答案”的段子,感觉有点搞怪O(∩_∩)O~~。是的,做技术开发门槛越来越高了。。。 结合查看objc源码,我写了个简单测试demo,关于对象的三个修饰词__strong、__weak、__unsafe_unretained…
iOS 渲染框架
UIKit是iOS开发最常用的框架,可以通过设置UIKit组件的布局以及相关属性来绘制界面。 事实上,UIKit自身并不具备在屏幕成像的能力,其主要负责对用户操作事件的响应(UIView继承自UIResponder),事件响应的传递大体是经过逐层的视图树遍历实现的。 Core …
Runtime源码 autoreleasepool
这里可以看到整个 iOS 的应用都是包含在一个自动释放池 block 中的。那么这个autoreleasepool到底是什么呢?接下来我们来一窥究竟。 终于看到他的结构了,总的来说,其实每一个自动释放池都是由一系列的 AutoreleasePoolPage 组成的,并且每一个 …
由 Tagged Pointer 联想到的一个问题
最近和基友 Maize 聊天,他给我普及了一个有意思的知识点,回看唐巧的 深入理解Tagged Pointer 的文章,再结合之前在公司看到的代码,突然有了一些灵感,我们先上一段代码。 我们先说一下结论,如果这个属性的值为100,那么它不会 crash,如果是 100.1 那么…
UIViewController瘦身
做iOS也有些年头了,最近把项目核心模块的架构重新设计了一番,这里做一些记录。 首先,我们要对基础的设计模式有一定的认知。这些基础的设计模式,便是MVC、MVVM、VIPER。 关于 MVC ,斯坦福的 Paul 老头有一张经典的图示,相信大部分iOSer都看过: mvc.pn…
Socket搭建即时通讯服务器
客户端A与客户端B如何产生通信?客户端A不能直接和客户端B,因为两者相距太远。 这时就需要通过IM服务器,让两者产生通信. 例如: 急送一个快递,HTTP协议指的那个快递单,你寄件的时候填的单子就像是发了一个HTTP请求。而TCP协议就是中间运货的运输工具,它是负责运输的,而运…