LLDB Help Command
LLDB 는 help 명령어를 제공한다. (lldb) help 이 명령어는 사용할 수 있는 모든 명령어를 dump 하며, ~/.lldbinit 에 존재하는 커스텀 명령어도 포함한다. LLDB 는 apropos 명령어도 제공한다. apropos 는 LLDB 문서에서 단어나 문자열에 대해 검색하여 일치하는 결과를 반환한다. (lldb) apropos ...
LLDB 는 help 명령어를 제공한다. (lldb) help 이 명령어는 사용할 수 있는 모든 명령어를 dump 하며, ~/.lldbinit 에 존재하는 커스텀 명령어도 포함한다. LLDB 는 apropos 명령어도 제공한다. apropos 는 LLDB 문서에서 단어나 문자열에 대해 검색하여 일치하는 결과를 반환한다. (lldb) apropos ...
터미널을 열고 이름을 LLDB로 변경한다. 터미널에서 lldb1를 입력하여 LLDB를 실행한다. 새로운 탭을 만들고 이름을 Xcode stderr로 변경한다. 터미널에서 tty를 입력하면 아래와 유사한 주소가 나타난다: /dev/ttys0012 터미널에서 target create /Applications/Xcode-15.4.0.ap...
XCode는 GUI를 통해 BreakPoint를 생성할 수 있다. 하지만 LLDB Command를 이용하면 훨씬 다양한 Option의 BreakPoint를 생성할 수 있다. breakpoint set --name viewDidLoad --regex 함수 이름에 viewDidLoad를 포함하는 모든 함수에 브레이크포인트를 설정한다. breakpoi...
ReactorKit과 같은 Binding을 이용한 아키텍쳐에서는 Unit Test를 작성할 때 Stream의 끝은 UIBinding일 경우가 많기때문에 이럴경우는 해당 메소드의 값이 View Property에 바인딩이 잘 되었는지 테스트를 해야한다고 생각한다. 하지만 대부분의 UI Property의 경우 private접근자로 선언되어 있어 XCTest...
API Response에서 action값의 유무에 따라 다른 행동을 해야한다면 init(from decoder: any Decoder) throws가 아닌 Mirror를 통해 쉽게 해결할 수 있다. { “action1”: “some action1”, “action2”: “some action2”, “action3”: “some action3” } s...
LLDB는 Clang 컴파일러 인프라를 사용하여 디버그 정보를 Clang 타입으로 변환합니다. 이를 통해 최신 C, C++, Objective-C, Objective-C++ 언어 기능과 Runtime을 지원할 수 있다. 또한, 표현식을 위한 함수 호출 시 모든 ABI(Application Binary Interface) 세부사항을 처리하거나, 명령어를...
옵셔널 바인딩과 강제 언래핑의 차이점은 무엇인가요? Optional Binding (Optional Chaining) 각종 Binding 기법을 사용해 값의 유무를 확인한 후 그 값을 할당한다. Forced Unwrapping ...
NSCache를 사용하다보면 시스템에 의해 의도치 않게 cache가 삭제되는 경우가 있다. 이럴경우 protocol NSDiscardableContent를 이용해 cache삭제에 대한 정책을 정의할 수 있다. import Foundation final class LottieAnimationCacheObject: NSObject, NSDiscardabl...
iOS14 부터 지원하는 UICollectionView API 중 struct CellRegistration<Cell, Item> where Cell : UICollectionViewCell의 경우 Cell과 Item을 전달하게 되는데 struct SupplementaryRegistration<Supplementary> where...