반응형
프로토콜 구현 여부 체크
TestProtocol
@protocol TestProtocol <NSObject>
-(void)test;
-(void)test1:(NSString*)str;
-(void)test2:(NSString*)str str2: (NSString *)str2;
-(void)test3:(NSString*)str str2: (NSString *)str2 str3:(NSString*)str3;
@end
프로토콜 구현 여부 체크
respondsToSelector를 사용하여 프로토콜 구현 여부를 체크할 수 있다.
_testProtocol이 nil인 경우, @selector에 있는 함수가 구현되지 않은 경우는 else 구문을 탄다.
if ([_testProtocol respondsToSelector:@selector(test)]) {
[_testProtocol test];
} else {}
if ([_testProtocol respondsToSelector:@selector(test1:)]) {
[_testProtocol test1:@"1"];
} else {}
if ([_testProtocol respondsToSelector:@selector(test2:str2:)]) {
[_testProtocol test2:@"1" str2:@"2"];
} else {}
if ([_testProtocol respondsToSelector:@selector(test3:str2:str3:)]) {
[_testProtocol test3:@"1" str2:@"2" str3:@"3"];
} else {}
반응형
'iOS > Swift + Objective-c' 카테고리의 다른 글
[objective-c] prefix.pch 파일 추가하기 (Precompiled Header) (1) | 2021.04.24 |
---|---|
[objective-c] 로그 편하게 사용하기 (NSLog) (0) | 2021.04.24 |
[objective-c] OS 잠금 활성화 여부 조회 (암호, Touch ID(Face ID) (0) | 2021.04.01 |
[iOS] WKWebView content size mobile 사이즈에 맞추기 (0) | 2021.03.05 |
[iOS] 애드몹을 사용하는 앱을 앱스토어에 업로드 시 주의 사항 (AdMob) (0) | 2021.01.16 |