Canoe

理解Autoreleasepool

Autoreleasepool分析 main函数是整个程序的入口,从我们一进入main 函数就会接触到autoreleasepool。 int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } 整个iOS应用都是包含在一个自动释放池block中。 使用clang -rewrite-objc对main.m编译之后我们会发现autoreleasepool@{}被转换成为一个__AtAutoreleasePool......

打探一款app的内部实现

相信每一名开发人员对于一款优秀产品的内部实现都会很好奇,而且现在app越来越多,竞品也是越来越多,我们对于其他app的内部实现方式的研究也越来越重要,会想知道某个核心功能使用了哪些第三方服务、数据......

Wherever You Will Go

我们总想去追求正确的生活,实际上却一心向往有趣的生活。在匆忙的年代里,我们总容易忽略静默里的相对,然后死磕在来去匆忙里。所幸在前路的挫折和别人的虚情假意中,我们并未......

Xcode Server自动打包

之前项目中一直使用的jenkins来持续集成,之后也使用过fastlane来自动打包,然而总感觉这两种打包方式集成起来较为复杂,对于证书配置以及Xcode版本更新变动的时候会很麻烦,那么有没有一种较为方便而且能满足我们需求......

APP启动时间优化

一、 APP启动过程 iOS应用的启动可分为pre-main阶段和main()阶段,其中系统做的事情依次是: 1.1 pre-main阶段 加载应用的可执行文件 加载动态链接库加载器dyld(dynamic loader) dyld递归加载应用所有依赖的dylib(dynamic library 动态链接库) 对于main函数之前的......

高质量iOS博客和网站

博客 有时候在查阅技术点时,会看到一些很好的文章,发现文章质量非常高以至于想要去了解作者,但是当时因为项目需要,没有时间去看其他的文章,过后经常又忘记在哪里看到的了,所以想要记录一些很有深度,质量......

项目内存优化

因为arc的缘故,现在很多的开发人员会将注意力放在业务模块,以至于疏忽了内存部分的优化,刚开始看不出什么问题,当上线之后或者项目慢慢庞大的时候,会出现各种各样的问题,因为内存问题相对于一般的问题来......

理解iCloud同步

翻译:使用iCloud存储API将用户文档和数据写入中央位置,并从用户的所有计算机和iOS设备访问这些项目。使用iCloud无处不在的用户文档意味着用户可以从任何设备查看或编辑这些文档,而无需显式同步或传输文件。将......