Eigenschaftstyp oder Klasse unter Verwendung von Reflektion

Ich habe mich gefragt, ob es möglich ist, die Klasse oder den primitiven Typ einer Objekteigenschaft zu bestimmen. Es ist ziemlich einfach, alle Eigenschaftsnamen und -werte abzurufen.SO antworte

Gibt es also eine Möglichkeit, den Typ der Eigenschaftsklasse abzurufen, während die Eigenschaft keinen oder keinen Wert hat?

Beispielcode

@interface MyObject : NSObject
@property (nonatomic, copy) NSString *aString;
@property (nonatomic, copy) NSDate *aDate;
@property                   NSInteger aPrimitive;
@end

@implementation MyObject
@synthesize aString;
@synthesize aDate;
@synthesize aPrimitive;

- (void)getTheTypesOfMyProperties {
    unsigned int count;
    objc_property_t* props = class_copyPropertyList([self class], &count);
    for (int i = 0; i < count; i++) {
        objc_property_t property = props[i];

        // Here I can easy get the name or value
        const char * name = property_getName(property);

        // But is there any magic function that can tell me the type?
        // the property can be nil at this time
        Class cls = magicFunction(property);
    }
    free(props);
}

@end

Antworten auf die Frage(2)

Ihre Antwort auf die Frage