私はこの質問をグーグルで検索し、時間をかけて自分で解決しましたが、運が悪かったです。
クラスのユーザーに対して隠されているクラスの静的メソッドを呼び出す必要があります。
// 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
Call 1 は正常に動作し、Call 2 は nil を返し、Call 3 はコンパイルされません。
.h ファイルで定義されていない静的メソッドを呼び出して、正しい返されたオブジェクトを与えるにはどうすればよいですか?
よろしくお願いします、ロスト