티스토리 뷰
발생일: 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 구문 자체가 실행되지 않는다.
}
...
}
반응형
댓글
공지사항