これが私の状況です:
NSDictionary を解析し、プロトコルを実行するオブジェクトを返すクラス メソッドを持つプロトコルがあります。
@protocol RCParsableObject <NSObject>
/**
Parses an object from an NSDictionary representation
Return: A object created from the NSDictionary representation
*/
+(id<RCParsableObject>)parseObjectFromDictonary:(NSDictionary*)object;
@end
コードの一部に、NSString でそのプロトコルを実行するクラスの名前があります。
//dict is the dictionary I want to parse
Class class= NSClassFromString(type);
if ([class conformsToProtocol:@protocol(RCParsableObject)]) {
//NSObject* object = [class parseObjectFromDictionary:dict];//Obviously that don't works but shows what I want
}
if の内部では、if によって実行できることがわかっているプロトコルの Class メソッドを実行したいと考えています。どうすればそれができますか?これは以下と同等です:
NSObject * object = [class performSelector:_selector];
Class オブジェクトの場合は?