首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS
订阅
SionChen
更多收藏集
微信扫码分享
微信
新浪微博
QQ
15篇文章 · 0订阅
iOS多线程安全-13种线程锁🔒
多个线程访问同一块资源的时候,很容易引发数据混乱问题。 正常情况下我有50张票,然后卖了50次,剩余票数应该是0,但是打印结果竟然是3,所以这里就存在了线程安全问题。 出现线程安全的原因就是在同一个时间,多个线程同时读取一个值,像线程A和B同时读取了当前票数为10,等于是卖了两…
iOS源码解析: performSelector是如何实现的?
performSelector系列接口是runtime的一大特色,可以执行延迟,还能指定线程执行。本文从源码角度分析了其实现原理。 关于涉及到的数据结构,这里只是简单介绍一下。 SEL用于在runtime中表示一个方法名。与其对应的方法实现则使用IMP来表示。 并未找到objc…
苹果iOS系统源码思考:对象的引用计数存储在哪里?--从runtime源码得到的启示
iOS开发者都知道OC里面的内存管理是通过对象的引用计数来管理的,或手动MRC,或自动ARC,有些操作可以让引用计数加1,有些可以减1,一旦一个对象的引用计数为0,就回收内存了。 可是,你仅仅知道这里就行了吗?指望你能造火箭造飞机的面试官可不这么想了,比如问你一句,一个对象的 …
iOS中用到的数据结构_哈希表
哈希表(hash table,也叫散列表),是根据键(key)直接访问访问在内存储存位置的数据结构。 哈希表的关键思想是使用哈希函数将键映射到存储桶。更确切地说, 当我们想要搜索一个键时,哈希表将使用相同的哈希函数来查找对应的桶,并只在特定的桶中进行搜索。 weak表采用的…
Flutter动态化框架Fair的设计与思考
这是一个“送分题”😅。在很多技术框架中,都有动态化的诉求,拿到Flutter中,同样如此。在笔者看来,进行Flutter的动态化探索是为了一件事情: 我们都知道,当做一件事情方法是唯一的话反而是简单些,因为没得选。但是如果有多种可选方案。那么势必就存在技术选型的问题。 当然本…
滴滴开源小桔棱镜:一款专注移动端操作行为的利器
小桔棱镜是一款专注于移动端操作行为的工具,涵盖APP操作回放、操作检测、以及数据可视化能力。本篇我们会从产品设计理念和技术实现思路上对棱镜进行整体介绍。 移动端作为当前大多数业务的几乎唯一载体,决定了我们日常的开发、测试、运营分析、产品迭代工作都要围绕它进行,这样一来移动端上的…
iOS静态库与动态库的区别与打包
这篇主要是记录一下 iOS 下静态库与动态库的打包流程,以便以后用到时快速查阅,供自己也供大家学习记录。同时也简述了一下 动态库 与 静态库 的区别。 库是写好的现有的,成熟的,可以复用的代码。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态…
oh-my-zsh-安装使用
现在再重新打开命令行,是不是已经不是之前那个只有黑白单调的了。
仿AppStore首页转场动画
效果图:高度还原AppStoreToday首页转场动画支持手势左滑返回以及下拉返回代码地址:https://github.com/wqhiOS/AppStoreTransition
iOS 一步步带你实践组件二进制方案
随着业务的扩展、项目体积的增大,CocoaPods组件库越来越多,每次重新编译的时候速度越来越慢,这给我们提出了需要提高编译速度的需求。 前两个就不在这里讨论了可以看看这篇讲解。今天重点给大家分享一下第三和第四种方案的实施,但是目前只能针对私有库实施,对于一些第三方的公有库目前…