+(BOOL)resolveClassMethod:(SEL)aSel {
NSString *lString = NSStringFromSelector(aSel);
if ([self validateLetterAndAccidental:lString]) {
id (^noteFactoryBLOCK)(id) = ^(id aSelf) {
return [self noteWithString:lString];
};
IMP lIMP = imp_implementationWithBlock(noteFactoryBLOCK);
...
Aparece un error en la última línea porque noteFactoryBLOCK se convierte en un vacío * y ARC no permite eso. ¿Hay actualmente una manera de lograr lo que quiero? Me gustaría un IMP que pueda pasar a class_addMethod en tiempo de ejecución.lanzando un bloque a un vacío * para resolución de método de clase dinámica
EDITAR
IMP myIMP = imp_implementationWithBlock(objc_unretainedPointer(noteFactoryBLOCK));
Esta línea darme una advertencia en lugar de un error - Semantic Issue: Passing 'objc_objectptr_t' (aka 'const void *') to parameter of type 'void *' discards qualifiers
ARC is public now! Ver http://lists.cs.uiuc.edu/pipermail/cfe-dev/2011-June/015588.html –