Objective-C 프로토콜에 문제가 있습니다.프로토콜이 선택자에 응답하지 않습니다.
I 정의한 프로토콜 :
@protocol PlayerProfileSectionProReviewDelegate <NSObject>
- (void)didReceivedPlayerProfileSectionProReviewData;
@end
@interface PlayerProfileSectionProReviewModel : PlayerProfileSectionModel
@property (weak) id <PlayerProfileSectionProReviewDelegate> playerProfileSectionProReviewDelegate;
@end
이 클래스 구현에서 I 호출 대리인 :
@interface PlayerProfileSectionProReviewViewController : PlayerProfileSectionViewController <UITableViewDelegate, UITableViewDataSource, PlayerProfileSectionProReviewDelegate>
@end
:
if ([self.playerProfileSectionProReviewDelegate respondsToSelector:@selector(didReceivedPlayerProfileSectionProReviewData)])
{
[self.playerProfileSectionProReviewDelegate didReceivedPlayerProfileSectionProReviewData];
}
보기 제어기 I가 didReceivedPlayerProfileSectionProReviewData
방법 PlayerProfileSectionProReviewDelegate
을 첨가하고 재정의 한 및
#pragma mark <PlayerProfileSectionProReviewDelegate>
- (void)didReceivedPlayerProfileSectionProReviewData
{
[self.playerProReviewTableView reloadData];
}
왜 프로토콜이 선택기에 응답하지 않습니까?
당신의PlayerProfileSectionProReviewViewController
클래스 구현에
'_playerProfileSectionProReviewDelegate'는'nil'입니까? 또한'playerProfileSectionProReviewDelegate'를'weak' 속성으로 정의하고 싶을 것입니다. –
네,'_playerProfileSectionProReviewDelegate'는'nil'입니다! 어떻게 처리할까요? –
'playerProfileSectionProReviewDelegate' 속성을 정의했으나 이는 단지 속성 일뿐입니다. 그것은 변수의 이름 인 신발 상자입니다. _value_를 지정하지 않았습니다. 이 델리게이트 객체를 만들지 않는다면 거기에 아무 것도 없습니다. 신발 상자는 비어 있습니다 (nil). – matt