整理一下自己学到的知识,方便以后查看 1.向nil对象发送消息,为什么不会崩溃 每个想法在运行时,都会被动态转为消息发送,即ojbc_msgSend(receiver,sel...
整理一下自己学到的知识,方便以后查看 runloop 和线程的关系: 主线程的run loop默认是启动的。 iOS的应用程序里面,程序启动后会有一个如下的main()函数 ...
整理一下自己学到的知识,方便以后查看 不手动指定autoreleasepool的前提下,一个autorealese对象在什么时刻释放?(比如在一个vc的viewDidLoad...
整理一下自己学到的知识,方便以后查看 使用block时什么情况会发生引用循环,如何解决? 一个对象中强引用了block,在block中又使用了该对象,就会发射循环引用。 解决...
整理一下自己学到的知识,方便以后查看 常规属性描述 1.NSString、NSArray、NSDictionary 等等经常使用copy关键字,是因为他们有对应的可变类型:N...
+ (void)load{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
[LGRuntimeTool lg_bestMethodSwizzlingWithClass:self oriSEL:@selector(helloword) swizzledSEL:@selector(lg_studentInstanceMethod)];
});
}
这块也有点问题 load本身是线程安全的,没必要写dispatch_once了
iOS底层原理 16 :底层面试题1. 主类的方法和分类的方法重名,会如何调用? 如果重名的是+load方法,则先执行父类的load方法 ,其次主类的load方法,最后执行分类的load方法 如果重名的是+i...
"如果重名的是其他普通方法,则分类方法会覆盖主类方法" 其实不是覆盖,是先找到后编译的方法了 就不执行先编译的方法,理解成switch case判断吧 第一个case就return imp了.
iOS底层原理 16 :底层面试题1. 主类的方法和分类的方法重名,会如何调用? 如果重名的是+load方法,则先执行父类的load方法 ,其次主类的load方法,最后执行分类的load方法 如果重名的是+i...