美文网首页
OC调用私有方法

OC调用私有方法

作者: huoshe2019 | 来源:发表于2019-10-08 11:00 被阅读0次

私有方法调用共有以下四种方式:
以Person类为例:

#import "Person.h"
@implementation Person
- (void)privateMethod
{
    NSLog(@"privateMethod");
}
@end

一、分类

#import "Person.h"
NS_ASSUME_NONNULL_BEGIN
@interface Person (Test)
//只有声明,没有实现
- (void)privateMethod;
@end
NS_ASSUME_NONNULL_END

调用方式如下:

Person *person = [[Person alloc] init];
[person privateMethod];

备注:

二、performSelector

调用方式如下:

Person *person = [[Person alloc] init];
[person performSelector:@selector(privateMethod) withObject:nil];

三、objc_msgSend

调用方式如下:

Person *person = [[Person alloc] init];
objc_msgSend(person,@selector(privateMethod));

四、IMP

调用方式如下:

Person *person = [[Person alloc] init];
IMP imp = [person methodForSelector:@selector(privateMethod)];
    void (* tempFunc)(id target, SEL) = (void *)imp;
    tempFunc(person, @selector(privateMethod));

相关文章

  • OC - runtime常见用法小结

    消息机制 - 调用私有方法 OC的runtime特性,使其没有严格意义上的私有方法。 方法交换 很多时候,我们想要...

  • OC调用私有方法

    私有方法调用共有以下四种方式:以Person类为例: 一、分类 调用方式如下: 备注: 二、performSele...

  • WebViewJavascriptBridge 使用

    目的 掌握 OC 调用 JS方法 JS 调用 OC方法 OC——>sender JS——> sender OC 调...

  • 访问私有属性&NSValue包装

    自定义类Honzon,一个私有成员变量test和一个打印方法logTest KVC 调用私有方法 通过OC的运行时...

  • OC 中子类如何调用父类的私有方法

    OC中能实现子类调用父类的私有方法吗? 调用父类的私有方法无非是想做两种操作:1.父类的实现完全不适用于子类(需完...

  • iOS中 wkwebView与js 简单交互

    iOS 代码 js调用OC 方法 1、添加方法 2、接收js调用oc 的代理方法 3、移除js的监听方法 oc调用...

  • 私有变量(上)

    // 如果只有方法的实现, 没有方法的声明, 那么该方法就是私有方法 // 在OC中没有真正的私有方法, 因为OC...

  • JavaScript和Object-OC互相调用

    一 调用的方法:## 1. OC调用js方法,只需要调用UIWebView自带的方法即可. 2.js调用OC方法,...

  • 3,消息转发机制

    1,OC方法的调用 OC中的方法调用其实都是转成了objc_msgSend函数的调用,给receiver(方法调用...

  • objc_msgSend调用流程

    oc的方法调用 OC中的方法调用其实都是转成了objc_msgSend函数的调用,给receiver(方法调用者)...

网友评论

      本文标题:OC调用私有方法

      本文链接:https://www.haomeiwen.com/subject/zsfbuctx.html