Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

rac_signalForSelector: needs empty implementation

I have a class that implements the UICollectionViewDelegate protocol.

I'm using rac_signalForSelector: to register selection like this:

[self rac_signalForSelector:@selector(collectionView:didSelectItemAtIndexPath:)]

but it only fires if I leave in an empty implementation of collectionView:didSelectItemAtIndexPath: like this:

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
    // Empty
}

I tried with rac_signalForSelector:fromProtocol: as well without luck.

I'm using Reactive Cocoa 2.2.4

Thanks, Mikkel

like image 563
Grav Avatar asked Feb 24 '14 22:02

Grav


1 Answers

Make sure you call -rac_signalForSelector: before you set your object as a delegate. Some Apple frameworks will check to see if your class responds to a certain delegate method selector when you set the delegate object, and cache that information, so if you haven't called -rac_signalForSelector: by that time and you don't explicitly implement the method, those delegate methods won't ever get called.

like image 89
erikprice Avatar answered Oct 21 '22 19:10

erikprice