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 *可以使