首先,在类中导入头文件
#import <objc/message.h>
然后就可以使用objc_msgSend来发送消息给某个对象!
但是正常的项目使用这个函数会报错!
我们需要在项目里的Target的buildSetting里面搜索send
将Enable Strict Checking of objc_msgSend Calls设置为NO就可以了!默认为YES;
如果为YES,代码录入的时候默认是不能传参的,objc_msgSend();
修改之后就会变成
objc_msgSend(<#id self#>, <#SEL op, ...#>)
第一个参数传入对象,第二个参数传入方法名,如果方法中带有参数,可以在后面跟入参数,用逗号隔开!
利用消息发送可以调用对象的私有方法!
这就产生了一个容易混淆的话题:OC中没有绝对的私有!