iOS 无侵入埋点方案
image.png image.png 并且这个文件不会与任何业务代码耦合(我们看看引入的头文件) image.png 具体细节请参考实现。 由于无侵入埋点的方案是基于当前项目中存在的埋点业务特点,定制化编写对应的格式,所以不太适合做成基础组件,因此楼主只给了一个demo,供大家参考。 原理: 基于...
iOS抖音的转场动画
transition.gif 这里需要用到前一篇文章的上下滑demo 学习这篇文章之前推荐看下喵神的iOS7中的ViewController转场切换 如果对转场不是很了解的话可能学习会有一些难度和疑问. 转场调用代码 - (void)collectionView:(UICollectionView...
『ios』dispatch_once死锁和滥用单例导致的问题
image.png image.png 通过下面的报错位置,在对应着源码,应该可以看出问题所在。...
iOS开发跳槽入职小米,捋了一下iOS面试知识点
iOS面试文档 54、leak工具使用 55、应用程序启动过程,启动优化 - 应用启动时是用怎样加载所有依赖的Mach-O文件的? - 请列举你所知道main()函数之前耗时的因素都有哪些 App启动分为两种: - 冷启动(Cold Launch):从零开始启动app - 热启动(Warm Laun...
iOS底层原理10:消息流程分析之快速查找
image 利用clang编译器将main.m编译成 main.cpp:clang -rewrite-objc main.m -o main.cpp,查看编译后的底层实现 //?clang编译后的底层实现 HTPerson *p = ((HTPerson *(*)(id, SEL))(void *)...
iOS KVC和KVO
image 要监听Person中的age属性,我们就创建一个observer用来监听age的变化,当我们age一旦发生改变,就会通知observer。 KVO简单的实现 我们先简单的回顾一下 KVO的代码实现。 1.DLPerson.h 文件 ///˃ DLPerson.h 文件 #import ˂...
Swift进阶(十五)扩展(Extension)
image.png 那我们应该怎样去处理呢? 由于所有的整数都遵守BinaryInteger协议,所有我们可以: □ 第一种方法,使用泛型,并限定泛型 func isOdd(_ i: T) -˃ Bool { (i % 2) != 0 } □ 给BinaryInte......
iOS文件管理
- (void)_getSandBoxPath { NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); NSString*cachesPat...










