La herramienta de migración ARC se niega a aceptar este código antes de comenzar con la migración:Cómo resolver "ningún método de instancia conocido para el selector 'performSelector: withObject: afterDelay:'" al migrar a ARC?
[self.delegate performSelector:@selector(overlayDismissed:) withObject:self afterDelay:0];
El delegado se ve obligado a poner en práctica este método con un protocolo, y que debería funcionar bien:
@protocol OverlayDelegate <NSObject>
- (void)overlayDismissed:(Overlay*)overlay;
@end
@interface Overlay : UIImageView {
id<OverlayDelegate> delegate;
}
@property (nonatomic, assign) id<OverlayDelegate> delegate;
¿Qué pasa con ARC? ¿Por qué me está diciendo que no hay ningún método de instancia conocido para el selector 'performSelector: withObject: afterDelay:'?
¿Eso significa que en virtud de ARC los días en que declaramos que los delegados se han ido? ¿Simplemente confía en NSObject en su lugar? (para mí, eso tiene sentido de todos modos) – openfrog
ARC aplica estas cosas para fines de gestión de la memoria. Si sabe que su delegado será del tipo NSObject, simplemente dígalo y este problema desaparecerá. – dtuckernet
O todavía use 'id' y simplemente no use métodos de' NSObject'. ¿Por qué estás usando métodos de 'NSObject' de todos modos? ¿Hay un requerimiento aquí? – mattjgalloway