Como swizzle um método de classe no iOS?

Método swizzling funciona muito bem, por exemplo, métodos. Agora, preciso alterar um método de classe. Alguma idéia de como fazer isso?

Tentei isso, mas não funciona:

void SwizzleClassMethod(Class c, SEL orig, SEL new) {

Method origMethod = class_getClassMethod(c, orig);
Method newMethod = class_getClassMethod(c, new);

if(class_addMethod(c, orig, method_getImplementation(newMethod), method_getTypeEncoding(newMethod)))
    class_replaceMethod(c, new, method_getImplementation(origMethod), method_getTypeEncoding(origMethod));
else
    method_exchangeImplementations(origMethod, newMethod);
}

questionAnswers(1)

yourAnswerToTheQuestion