Mobile/iOS

[iOS/Objective-C] Objective-C에서 guard, iflet 사용하기

out of coding 2017. 11. 22. 15:13

swift를 하던 사람에게 Objective-C를 다시 하는 경우가 발생할수도 있다.

그래서 guard를 자주 사용하였던 사람의 입장에서는 약간 아쉬움이 남아서 구글링을 해보았다.

#define을 이용하여서 다음과 같이 적어주고 사용하도록 한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#define iflet(VARIABLE, VALUE) \
    ifletwhere(VARIABLE, VALUE, YES)
 
#define ifletwhere(VARIABLE, VALUE, WHERE) \
    for (BOOL b_ = YES; b_ != NO;) \
        for (id obj_ = (VALUE); b_ != NO;) \
            for (VARIABLE = (obj_ ?: (VALUE)); b_ != NO; b_ = NO) \
                if (obj_ != nil && (WHERE))
 
#define guard(CONDITION) \
    if (CONDITION) {}
 
#define guardletwhere(VARIABLE, VALUE, WHERE) \
    ifletwhere(VARIABLE, VALUE, WHERE) {}
 
cs


그럼 즐코딩.