由于ObjC主要基于Smalltalk进行设计,因此它有很多类似于Ruby、Python的动态特性,例如动态类型、动态加载、动态绑定等。今天我们着重介绍ObjC中的键值编码(KVC)、键值监听(KVO)特性: 键值编码KVC 我们知道在C#中可以通过反射读写一个对象的属性,有时候这种方式特别方便,因 ...
分类:
其他好文 时间:
2018-02-02 11:39:03
阅读次数:
188
void *objc_destructInstance(id obj){ if (obj) { Class isa_gen = _object_getClass(obj); class_t *isa = newcls(isa_gen); // Read all of the flags at onc ...
分类:
其他好文 时间:
2018-02-01 23:14:00
阅读次数:
183
AssociationsManager 是顶级的对象,维护了一个从 spinlock_t 锁到 AssociationsHashMap 哈希表的单例键值对映射; AssociationsHashMap 是一个无序的哈希表,维护了从对象地址到 ObjectAssociationMap 的映射; Obj ...
分类:
其他好文 时间:
2018-02-01 21:14:07
阅读次数:
123
黑幕背后的Autorelease http://www.cnblogs.com/feng9exe/p/7239552.html objc_autoreleasePoolPush的返回值正是这个哨兵对象的地址,被objc_autoreleasePoolPop(哨兵对象)作为入参,于是: 假设这些都有线 ...
分类:
其他好文 时间:
2018-01-23 20:23:37
阅读次数:
141
样例Demo 欢迎给我star!我会继续分享的。 概述 Objc Runtime使得C具有了面向对象能力,在程序执行时创建,检查。改动类、对象和它们的方法。Runtime是C和汇编编写的,这里http://www.opensource.apple.com/source/objc4/能够下到苹果维护的 ...
分类:
移动开发 时间:
2018-01-16 18:28:07
阅读次数:
207
#import <objc/runtime.h> @interface UINavigationController (Transition)<UIGestureRecognizerDelegate> - (void)transitionPanGestureDidLoad; @end @interf ...
分类:
移动开发 时间:
2018-01-15 20:38:29
阅读次数:
151
//所以类都继承于该类//任何拥有isa指针都可以称为对象NSObject {Class _Nonnull isa ; // 结构体指针} // 因此 objc_class 也是对象 ,这也就是为什么说类也是对象,具体参加《深入浅出 Cocoa 教程》struct objc_class { Clas ...
分类:
其他好文 时间:
2018-01-07 14:14:43
阅读次数:
93
objc 自己较为熟悉,想熟悉下风头正劲的 swift。就先从官方的入门手册开始撸。 每一小节,我都摘录或总结3个对自己三观冲击最大的【知识点】,以方便以后温习。总结不保证绝对正确,仅供交流之用。O(∩_∩)O哈哈~ ...
分类:
编程语言 时间:
2018-01-06 14:14:05
阅读次数:
142
有时开发过程中,经常需要调试接口,但是可能经常没有网络,导致调试无法正常进行。 对此可以自己手动设置一些假数据,也可以通过计算机来为我们保存一份真实的网络数据,并自己转化成plist数据,存在本地使用。 ## 直接在Mac上运行 ```objc NSString *path = @"/Users/x ...
分类:
移动开发 时间:
2018-01-05 15:23:19
阅读次数:
189
我在使用bash的时候通常会利用它的自动补全功能来看看文件夹下的内容(连按两下 键),例如: 说明Music文件夹下有这三个文件,我也就不需要提前用 命令来确定了。 但是最近我在查看当前shell(bash)的文件描述符时时却碰见一个“怪事”,当我用bash的自动补全功能查看时,显示为有0, 1, ...
分类:
其他好文 时间:
2017-12-31 22:24:02
阅读次数:
570