2014-02-24 84 views
7

我有一个实现UICollectionViewDelegate协议的类。rac_signalForSelector:需要空执行

我使用rac_signalForSelector:didSelectItemAtIndexPath:如果我在一个空的实现的CollectionView的离开

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

但它只火灾:注册选择这样这样的:

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

我尝试与rac_signalForSelector:fromProtocol:以及没有运气。

我使用的是无功可可2.2.4

感谢, 的Mikkel

回答

18

,请务必让-rac_signalForSelector:之前设置你的对象作为代表。某些Apple框架将检查您的类是否在设置委托对象时响应某个委托方法选择器,并缓存该信息,因此如果您在那段时间还没有调用-rac_signalForSelector:并且未明确实现该方法,这些委托方法不会被调用。

+2

有一个不雅但可用的解决方法:将'nil'分配给委托,然后重新分配真正的委托对象,这会导致选择器缓存失败。如果在之前分配委托后使用'-rac_signalForSelector:'执行此操作。 –