Überschreibe alle Setter und Getter einer Unterklasse

Ich möchte Setter und Getter außer Kraft setzen und die Klasse einesobjc_property_t ohne es einzeln für jede Eigenschaft zu tun.

Ich bekomme alle Eigenschaften so:

unsigned int numberOfProperties;
    objc_property_t *propertyArray = class_copyPropertyList([self class], &numberOfProperties);
    for (NSUInteger i = 0; i < numberOfProperties; i++) {
        objc_property_t property = propertyArray[i];
        NSString *name = [[NSString alloc] initWithUTF8String:property_getName(property)];

        property.getter = SEL; //?
    }

Dies ist ein Beispiel dafür, wie ich Getter und Setter überschreiben möchte. Wenn es einen besseren Weg gibt, lassen Sie es mich wissen. NSInvocation vielleicht?

- (UIImage *)backgroundImage
{
    return [self overrideGetterWithSelector:NSStringFromSelector(_cmd)];
}

- (void)setBackgroundImage:(UIImage *)backgroundImage
{
    [self overrideSetterForObject:backgroundImage forSelector:NSStringFromSelector(_cmd)];
}

Oder gibt es eine Möglichkeit, alle an eine Klasse gesendeten Nachrichten abzufangen?

Mein Ziel ist es, eine generische Methode zum Speichern von Eigenschaften einer Klasse zwischen Starts zu erstellen. Sie möchten wahrscheinlich fragen, warum ich nicht benutzeNSUserDefaults oderNSKeyedArchiver. Nun, ich benutzeNSKeyedArchiver - Ich möchte nicht jeden einzelnen Setter und Getter manuell überschreiben.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage