iOS: NSAssert() 이 실행되지 않을 때

발생일: 2016.04.04

키워드: NSAssert, Assertions, NS_BLOCK_ASSERTIONS

문제:
NSAssert() 를 실행해도 콘솔에 출력되지 않는다.


해결책:
빌드 설정에 NS_BLOCK_ASSERTIONS 매크로가 설정되어 있었기 때문이다.
빌드 설정에서 매크로를 제외하니 의도한 대로 실행된다.


논의:
NS_BLOCK_ASSERTIONS 매크로가 있을 경우, NSAssert() 구문 자체가 실행되지 않으므로 함수 내에서 조건형의 함수를 호출하지 않도록 주의한다.

- (void)checkValid {
    ...
    self.isValid = YES;
}

- (void)doSomething {
    ...
    NSAssert([self checkValid], @"...");

    if (self.isValid) {
        // NS_BLOCK_ASSERTIONS 매크로가 있을 경우, checkValid 구문 자체가 실행되지 않는다.
    }
    ...
}


저작자 표시 비영리 변경 금지
신고

카테고리

분류 전체보기 (682)
About me. (6)
Daylogs (647)
비공개 (0)
영어공부 (0)
My works - 추억 (29)