IOS调用私有函数

本文介绍了在iOS开发中如何在不暴露方法的情况下,从一个静态库调用另一个静态库的私有函数。主要方法包括使用performSelector和objc_msgSend进行函数调用,对于不同参数数量和类型的处理进行了说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IOS 调用私有函数

我的使用场景是我开发两个静态库,其中一个库需要使用另一个库的时候,但是这些方法我又不想暴露出来给其他人使用

首先定义一个类

// .h 文件
typedef void (^FailedBlock)(NSString* errCode,NSString* errDesc);
typedef void(^SuccessBlock) (int);

@interface ClassB : NSObject

@end

这边可以将函数变量存到成员变量,作为异步调用使用

// .m 文件
#import "ClassB.h"

@implementation ClassB

- (void)function_1:(NSString *)str {
    NSLog(@"%@", str);
}

- (void)function_2:(NSData *)data Successed:(SuccessBlock)successCB Failed:(FailedBlock)failedCB {
    if (data)
        successCB(0);
    else {
        failedCB(@"FFFF", @"data is nil");
    }
}

@end

调用只有一个参数或者没有参数可以使用performSelector

[object performSelector:@selector(function_1:) withObject:@"test function_1"];

多个参数使用objc_msgSend,引用型变量都可使用“id”代替,不需要知道具体类型,比如下面NSData *可以使

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值