获取设备的移动事件 当我们移动,晃动,或者倾斜手机的时候,这些动作都会被设备的硬件捕获。其实每一个动都都会在 X, Y, Z 三个方向上产生速度...
0x01 春节闲着没事(是有多闲),就写了个简单的程序,来爬点笑话看,顺带记录下写程序的过程。第一次接触爬虫是看了这么一个帖子,一个逗逼,爬取煎...
不少小伙伴们升级到 macOS Sierra 10.12.1 后在升级引导界面被坑了一把,就是把桌面和文档自动同步到 iCloud 中,导致消耗...
在日常开发过程中,为了提升程序运行效率,以及用户体验,我们经常使用多线程。在使用多线程的过程中,难免会遇到资源竞争问题。我们采用锁的机制来确保线...
定义属性 当编译器碰到属性声明的时候,会生成和类,类别,协议相关的描述性元数据,在类和协议中,你可以通过名字来访问属性的源数据,你可以通过使用 ...
类型编码 为了协助 runtime 系统,编译器将吧参数和返回值编码为字符串,并把这个字符串和方法选择器关联起来。在其他上下文中,这种编码方案同...
Message Forwarding 给一个对象发消息,如果这个对象不处理的话,那么将会产生一个错误。但是在抛出错误之前,runtime 系统给...
动态方法解析 这一章解释了怎样动态的提供一个方法的实现。 动态方法解析 当你想动态的提供一个方法的实现的时候,用 @dynamic 来定义一个属...
Messaging 这一章讲述消息怎样被转换为 objc_msgSend 方法的调用,如何通过名称引用方法,如何利用 objc_msgSend,...