Loop através de todas as propriedades do objeto em tempo de execução

Quero criar uma classe base Objective-C que execute uma operação em todas as propriedades (de tipos variados) em tempo de execução. Como os nomes e os tipos das propriedades nem sempre serão conhecidos, como posso fazer algo assim?

@implementation SomeBaseClass

- (NSString *)checkAllProperties
{
    for (property in properties) {
        // Perform a check on the property
    }
}

EDITAR Isso seria particularmente útil em um @ personaliza- (NSString *)description: sobrepor

questionAnswers(6)

yourAnswerToTheQuestion