+(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);
...
В последней строке я получаю сообщение об ошибке, потому что noteFactoryBLOCK приведен к пустоте *, а ARC запрещает это.Есть ли в настоящее время способ выполнить то, что я хочу?Я хотел бы получить IMP, который я могу передать class_addMethod во время выполнения.
EDIT
IMP myIMP = imp_implementationWithBlock(objc_unretainedPointer(noteFactoryBLOCK));
Эта строка выдает мне предупреждение вместо ошибки - Semantic Issue: Passing 'objc_objectptr_t' (aka 'const void *') to parameter of type 'void *' discards qualifiers