0

クラスのプロパティを動的に取得しようとしています。これが私の方法です

+(NSArray *)getDictionaryKeysFromObjClass:(NSObject *)objClass{

    NSMutableArray *classProperties = [[NSMutableArray alloc] init];
    const char* className = class_getName([objClass class]);
    id ObjectClass = objc_getClass(className);

    unsigned int outCount, i;
    objc_property_t *properties = class_copyPropertyList(ObjectClass, &outCount);

    for(i=0; i<outCount; i++){
        objc_property_t *property = properties[i];
        //[classProperties addObject:property];
        NSLog(@"Property > %@", property);
    }

}

したがって、次のように呼び出すたびに、正しく実行していたかどうかはわかりません。

NSMutableArray *testarr = [WCFServiceRequest getDictionaryKeysFromClass:[MyFirstClass class]];

エラーがスローされます。

NSInvalidArgumentException'、理由: '+[WCFServiceRequest getDictionaryKeysFromClass:]: 認識されないセレクターがクラスに送信されました

私が間違っていることについて何か考えはありますか?

ありがとう!!!

4

1 に答える 1

2

あなたはタイプミスをしました

NSMutableArray *testarr = [WCFServiceRequest getDictionaryKeysFromClass:[MyFirstClass class]];
------------------------------------------------------------------^Obj is missing

そのはず :

NSMutableArray *testarr = [WCFServiceRequest getDictionaryKeysFromObjClass:[MyFirstClass class]];

あなたの方法は次のとおりです。

+(NSArray *)getDictionaryKeysFromObjClass:(NSObject *)objClass;
于 2013-03-31T16:32:33.560 に答える