2014-02-24 2 views
7

UICollectionViewDelegate 프로토콜을 구현하는 클래스가 있습니다.rac_signalForSelector : 빈 구현이 필요합니다.

나는 rac_signalForSelector을 사용하고 있습니다 : didSelectItemAtIndexPath : 나는 collectionView의 빈 구현에두면

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

하지만에만 불이 같은 선택을 등록

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

I :이 같은 rac_signalForSelector : fromProtocol : 행운을 빌어 요.

내가 반응성 코코아에게 2.2.4

감사를 사용하고, Mikkel

답변

18

당신이 대리인으로 개체를 설정하면 이전 -rac_signalForSelector:를 호출해야합니다. 일부 Apple 프레임 워크는 델리게이트 객체를 설정할 때 클래스가 특정 델리게이트 메서드 선택기에 응답하는지 확인하고 그 정보를 캐시하므로 해당 시간까지 -rac_signalForSelector:을 호출하지 않았고 명시 적으로 메서드를 구현하지 않은 경우, 그 대리자 메서드는 호출되지 않습니다.

+2

멋지지만 사용할 수있는 해결 방법이 있습니다. 대리자로'nil'을 할당 한 다음 선택기 캐싱을 파헤치는 실제 대리인 객체를 다시 할당하십시오. 이전에 델리게이트를 할당 한 후에'-rac_signalForSelector :'를 사용한다면 이것을하십시오. –

관련 문제