我用谷歌搜索了这个问题,并花了一些时间自己弄清楚,但运气不好。
我需要调用对类的用户隐藏的类的静态方法。
// MyClass.h
@interface MyClass : NSObject
@end
// MyClass.m
@implementation MyClass
- (NSString *)myInstanceMethod
{
return @"result string";
}
+ (NSString *)myStaticMethod
{
return @"result string";
}
@end
------------------------------------------------------------
// MyCallerClass.m
#import "MyClass.h"
@implementation MyCallerClass
- (void) testMethod
{
MyClass *inst = [MyClass new];
// call 1
NSString *resultInstance = [inst performSelector:@selector(myInstanceMethod)];
// call 2
NSString *resultStaitc = [inst performSelector:@selector(myStaticMethod)];
// call
[MyClass myStaticMethod];
}
@end
调用 1 运行良好,调用 2 返回 nil,调用 3 无法编译。
如何调用 .h 文件中未定义的静态方法并给出正确的返回对象?
提前致谢, 罗斯特