January 26, 2018

iOS Crash文件的解析

相关 Apple 官方文档 iOS Crash文件的解析需要三个文件: bilibili.crash/bilibili.ips - 从崩溃的手机、itunes connect或者第三方日志系统获得 bilibili.dSYM - 从 xcarchive 文件里获得 symbolicatecrash 在 xcode 里,不同版本所在位置也不一样 Read more

October 10, 2017

用 Python 写脚本发送工作周报

事情的起因是这样的,每周都要发送工作周报,标题是需要的固定的格式(方便规则收信),比如 【工作周报】 xxx 11.20-11.24,发送和抄送也是给固定的人,企业邮箱还没有模板,所以每次发邮件都要复制粘贴标题、发送人和抄送人,只有内容是手写,便萌发了用脚本发送邮件的想法。 Read more

June 18, 2017

autoreleasepool 是如何实现的

查看下 @autoreleasepool 的 cpp 代码实现: /* @autoreleasepool */ { __AtAutoreleasePool __autoreleasepool; code ... } 查看 __AtAutoreleasePool 的结构,发现是一个结构体,在构造方法中调用了 objc_autoreleasePoolPush(),并在析构中调用了 objc_autoreleasePoolPop()。 Read more

June 10, 2017

weak 弱引用的实现方式

weak 修饰的变量,不会增加所引用对象的引用计数,且会在该对象析构后自动将指向置为nil。其本质是初始化和赋值操作会被编译器改写为 objc_initWeak 或者 objc_storeWeak 函数调用。objc_initWeak 的逻辑只是比 objc_storeWeak 多了所赋值对象的判空,接下来会直接调用 storeWeak(id *location, objc_object *newObj) 函数。 Read more

June 8, 2017

@synchronized 的实现方式

@synchronized 可以保证多线程不会同时执行一段代码,做用类似于锁,但比直接使用锁更加方便直观,那么它究竟是如何实现的呢? Read more

May 10, 2017

AFNetworking 源码阅读

版本:AFNetworking 3.1.0 AFNetworking 主要的几个类或协议: AFURLSessionManager AFHTTPSessionManager AFNetworkReachabilityManager AFSecurityPolicy <AFURLRequestSerialization> <AFURLResponseSerialization> Read more

March 8, 2017

iOS 中集合如何弱引用对象

1. 使用 NSValue NSValue 可以弱引用保存一个对象,我们可以使用这种方法间接的引用。 NSValue *value = [NSValue valueWithNonretainedObject:@selector(class)]; [array addObject:value]; Read more

February 17, 2017

不要滥用懒加载

写代码是一种习惯的养成,一种生活的态度。 以前学 iOS 开发的时候,喜欢在 ViewController 和 Cell 里初始化视图,还有数据模型数组的时候,是用的懒加载(Lazy-Load)。为什么这么喜欢用懒加载来实例化一个属性呢? 觉得懒加载可以延迟加载,需要的时候才去加载数据; 数组和字典等集合类型还可以防止为初始化或者使用中被置为 nil; 类的属性多了这么写看着更舒服、清晰 。。。 Read more

October 5, 2016

Swift 语法初窥

References: The Swift Programming Language 某程序员对书法十分感兴趣,退休后决定在这方面有所建树。于是花重金购买了上等的文房四宝。一日,饭后突生雅兴,一番磨墨拟纸,并点上了上好的檀香,颇有王羲之风范,又具颜真卿气势,定神片刻,泼墨挥毫,郑重地写下一行字:hello world。 Read more

Powered by Hugo & Kiss © Abin 2020