[IOS] Objective-C

[Objective-C] NSAssert를 이용한 디버깅

최고관리자
2018.07.04 09:34 2,295 0

본문

[iOS] NSAssert를 이용한 Objective-C 디버깅


 

Objective-C 용 assert()류 API인 NSAssert() 의 기본 사용법 정리.


assert() 를 기반으로 한 개발 시 디버깅 기법은 굉장히 기초적이면서도 유용하다. 일반적으로 프로그램 실행에 절대적으로 필요한 조건을 assert() 를 이용해 체크함으로써 개발 시 문제점 추적을 용이하게 해 준다.


NSAssert() 는 NSException.h 에 정의되어 있으며, 기본적으로 다음 형식으로 사용된다.

NSAssert(condition, description);

condition 에 조건식을 넣고 description 에는 condition 이 NO(false) 일시 디버깅 콘솔에 표시할 문자열(NSString)이다.


딱히 예가 필요할까 싶지만...

NSAssert( (a == 0), @"a is not 0" );

이런 식으로 a는 무조건 0이어야 한다는 것을 코드 상에 명기하는 식이 바로 assert 를 이용한 디버깅 기법이다. 이 경우 a가 0 이외의 값이었다면 프로그램이 종료되면서 일부러 오류를 일으킨다.


description을 formatted string으로 활용할 수도 있는 NSAssertN() 류의 함수를 이용할 수도 있다.

NSAssert1(condition, formatted_string, arg1);

NSAssert2(condition, formatted_string, arg1, arg2);

NSAssert3(condition, formatted_string, arg1, arg2, arg3);

이름에서 유추 가능하듯이 인자(parameter)가 몇 개냐에 따라 뒤에 숫자를 붙이는 이름의 API를 이용할 수 있다. 예를 들어

NSAssert2( (a < b), @"a[%d] is lower than b[%d]", a, b ); 

와 같은 식으로 2개의 인자를 넘겨주기 위해 NSAssert2()를 이용할 수 있다.


관련링크 : http://iphonedevelopertips.com/debugging/working-with-assertions.html



출처 : http://seorenn.blogspot.com/2011/06/ios-nsassert-objective-c.html

댓글목록 0

등록된 댓글이 없습니다.