私はObjectiveCの初心者ですが、Javaリフレクションのバックグラウンドがあります。
ここに、データベースからすべてのドメインオブジェクトを検索するクラシッククラスメソッドfindAllがあります。UniversクラスはDomainObjectから直接継承します
@interface DomainObject : NSObject
- (NSString *) execute : (NSString*) method withJson:(NSString*)json;
+ (NSString*)findAll: (NSString*)json;
@end
@implementation DomainObject
- (NSString *) execute: (NSString*) method withJson:(NSString*)json{
method = [NSString stringWithFormat:@"%@%@", method, @":"];
//method is 'findAll:'
NSString* result = [ self performSelector:
NSSelectorFromString(method) withObject:json];// Error here
return result;
}
@end
findAllがクラスメソッド(つまり、-findAll宣言)ではない場合、コードは機能していましたが、エラーが発生しました:NSInvalidArgumentException-[Univers findAll:]ランタイムがインスタンスメソッドを探しているようです。
私のクラスメソッドを見つけるためのアイデアはありますか?