Grav
Grav

Reputation: 1714

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

Upvotes: 7

Views: 1612

Answers (1)

erikprice
erikprice

Reputation: 6308

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.

Upvotes: 18

Related Questions