본문 바로가기

전체 글533

[iOS] RunLoop https://babbab2.tistory.com/68 iOS) 런 루프(RunLoop) 이해하기안녕하세요 :) 소들입니다 오늘은 RunLoop라는 것에대해 공부를 해볼 건데여 음... 내용이 좀 어려울 수도 있어여!! 저도 오랜만에 다뤄서 완전히 이해하고 쓰는 내용이 아니라... (한 1년 전에 공부babbab2.tistory.comhttps://developer.apple.com/documentation/foundation/runloop RunLoop | Apple Developer DocumentationThe programmatic interface to objects that manage input sources.developer.apple.comRunLoop RunLoop은 window sys.. 2024. 11. 10.
[iOS Issue] loadView override시 view가 생성되지 않는 문제 https://developer.apple.com/documentation/uikit/uiviewcontroller/1621454-loadview loadView() | Apple Developer DocumentationCreates the view that the controller manages.developer.apple.comViewController에서 view를 load해올 때 실행되는 loadView함수와 관련된 문제이다.  사실 '문제'라고 하기엔 그냥 apple이 의도한 사항인 것 같긴 하지만 내가 알고 있던 개발 상식으론 선뜻 동작구조가 이해가 되지 않는 일이라 문제라고 지칭했다.  일반적으로 ViewController의 view를 만드는 방법은 크게 2가지이다.code로 View짜기.. 2024. 11. 10.
[iOS Issues] NWPathMonitor thread safety crash issue https://developer.apple.com/documentation/network/nwpathmonitor NWPathMonitor | Apple Developer DocumentationAn observer that you use to monitor and react to network changes.developer.apple.com네트워크 상태 탐지를 위한 API인 NWPathMonitor 사용 중 발생한 thread safety issue이다. 근본적인 원인은 이전에 공유한 thread safety issue와 같다. [iOS Issue] Multi thread 환경에서 Dangling Pointer Crash 이슈앱의 Logging을 담당하는 모듈에서 multi thread 환경에서 동작.. 2024. 11. 10.
[iOS Issue] Multi thread 환경에서 Dangling Pointer Crash 이슈 앱의 Logging을 담당하는 모듈에서 multi thread 환경에서 동작 시 잦은 Crash가 발생하는 이슈가 생겼다. 결론만 말하자면 원인은 Singletone 클래스에 있는 Thread-safety 처리가 되어있지 않은 stored property에 여러 스레드가 동시에 setter에 접근을 하면서 Dangling pointer 크래시가 발생했다. 이슈 상황은 크게 2가지 였다. Unknown Object Release 이 경우는 Setter가 여러 스레드에서 동시에 불리면서 이미 Retain Count가 0임에도 불구하고 추가로 Release를 시도하면서 생기는 크래시였다. 다음과 같은 상황으로 보면 될 것 같다.stored property에 이미 instance가 존재하는 중 (retain c.. 2024. 5. 5.