본문 바로가기

분류 전체보기

(13)
[Xcode] Breakpoint 사용하기 (1) - 브레이크 포인트 Xcode 에서는 코드의 진행을 의도적으로 멈추고 그 시점에서의 메모리나 변수 값들을 확인할 수 있는 브레이크 포인트를 제공합니다. 이 글은 시리즈의 첫 편으로 간단하게 브레이크 포인트를 사용하는 방법에 대해서 다룹니다. Xcode 에서 브레이크 포인트를 지정하기 위해서 가장 많이 사용되는 방법은 위 이미지처럼 Editor Area 에서 line number 를 클릭해서 브레이크 포인트를 활성화하는 것입니다. 프레이크 포인트를 활성화한 채로 코드가 실행되면 특정 지점에서 코드의 진행이 멈추게 됩니다. 비활성화하고 싶을 땐 활성화된 브레이크 포인트를 다시 한 번 더 클릭하면 됩니다. 그리고 위 이미지처럼 아무것도 없는 빈 줄에 브레이크 포인트를 활성화하면 브레이크 포인트 이후로 가장 처음 마주치는 코드가 ..
[Swift] Foundation Framework 에서 NSString -> String 의 과정 지난 글 보기 [iOS] NSTaggedPointerString Crash Foundation +[NSUserDefaults(NSUserDefaults_NSURLExtras) _web_defaultsDidChange] 현재 회사에서 서비스 중인 앱에서 오랜 기간 동안 리포트되고 있던 크래시가 있습니다. Fatal Exception: NSInvalidArgumentE.. darth-vader.tistory.com 지난 글에서 크래시를 해결하면서 작성했던 코드의 동작 원리 즉, NSString 에서 String 으로 변환될 때 왜 nil 이 아니라 빈 문자열로 대체되서 반환이 되는가에 대해 원리를 파악하고자 합니다. 일단 우리가 전화번호를 통해 본인 인증을 하고자 할 때 iOS 13 에서는 OS 가 메시지에..
[iOS] NSTaggedPointerString Crash Foundation +[NSUserDefaults(NSUserDefaults_NSURLExtras) _web_defaultsDidChange] 현재 회사에서 서비스 중인 앱에서 오랜 기간 동안 리포트되고 있던 크래시가 있습니다. Fatal Exception: NSInvalidArgumentException *** -[NSTaggedPointerString stringByReplacingCharactersInRange:withString:]: nil argument 이름 그대로 예상치 못한 전달 인자로 인한 Exception 이며 NSTaggedPointerString 에 nil 이 인자로 전달되었다는 뜻입니다. 이 크래시의 특징은 iOS 13 운영체제에서만 발생한다는 것이고 기기 상태가 0% 백그라운드인..