rac_signalForSelector :nécessite une implémentation vide
-
20-12-2019 - |
Question
J'ai une classe qui implémente le protocole UICollectionViewDelegate.
J'utilise rac_signalForSelector :pour enregistrer la sélection comme ceci :
[self rac_signalForSelector:@selector(collectionView:didSelectItemAtIndexPath:)]
mais il ne se déclenche que si je pars dans une implémentation vide de collectionView:didSelectItemAtIndexPath :comme ça:
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
// Empty
}
J'ai essayé avec rac_signalForSelector:fromProtocol :aussi sans chance.
J'utilise Reactive Cocoa 2.2.4
Merci, Mikkel
La solution
Assurez-vous d'appeler -rac_signalForSelector:
avant vous définissez votre objet en tant que délégué.Certains frameworks Apple vérifieront si votre classe répond à un certain sélecteur de méthode délégué lorsque vous définissez l'objet délégué et mettront en cache ces informations, donc si vous n'avez pas appelé -rac_signalForSelector:
à ce moment-là et que vous n'implémentez pas explicitement la méthode, ces méthodes déléguées ne seront jamais appelées.