默认Person,没有实现eat实例方法和run类方法,可以通过performSelector调用,但是会报错
通过Runtime动态添加方法后就不会报错。
在Person类中引入头文件#import <objc/message.h>
当一个对象调用未实现的方法,会调用resolveInstanceMethod方法处理,并且会把对应的方法列表传过来,可以用来判断,未实现的方法是不是我们想要动态添加的方法。
添加实例方法,需要添加到《本类对象》上:objc_getClass("Person")
添加类方法,需要添加到《元类对象》上:objc_getMetaClass("Person")
网友评论