반응형
[ios] abstract class 만드는 방법 |
-
방법 1
.h 파일에 상속에서 구현해야 할 interface 들을 구현하고,
.m 파일에서는 해당 interface 함수들에서 Exception 을 던지도록 함으로써 간접적으로 만들 수 있다.
-
방법 2
마찬가지로 .h 파일에 상속에서 구현해야 할 interface 들을 구현한다.
.m 파일에서는 init 함수에서 isMemberOfClass 함수를 통해 abstract class 에서는
[self doesNotRecognizeSelector:_cmd] 함수로 Exception 을 날리고,
nil 을 return 해준다.
if ([self isMemberOfClass:[AbstractClass class]){
[self doesNotRecognizeSelector:_cmd];
return nil;
} else{
self = [super init];
// initialize
}
-
방법1의 경우 Instance 생성은 되지만, method 호출이 안 되는 방법이고,
방법2의 경우 Instance 생성 자체를 막아 버리고, method 에 대한 처리는 하지 않는 방법이다.
간결성, instance 생성 여부를 막는 점을 볼 때 방법2가 더 괜찮아 보인다.
반응형
'프로그래밍 놀이터 > iOS' 카테고리의 다른 글
[ios] ARC 와 Toll-free bridging (0) | 2017.10.29 |
---|---|
[objective c] 형변환 (0) | 2017.10.28 |
[ios] Solution for "The resource could not be loaded because the App Transport Security policy requires the use of a secure connection" (0) | 2017.10.26 |
[ios] String Concat ( String 연결하기 ) (0) | 2017.10.25 |
[ios] GCD ( Grand Central Dispatch ) Tutorial (0) | 2017.10.24 |
댓글