본문 바로가기
반응형

전체 글53

UIView 관련 메서드 정리 setNeedsLayout(): 다음 업데이트 사이클에 layoutSubviews() 호출 layoutSubviews는 View의 layout 이 변화했다는 유일한 콜백 layoutIfNeeded(): 레이아웃 업데이트가 대기상태일 경우, 즉시 해당 레이아웃을 업데이트 = 바로 layoutSubviews() 호출, 단 시스템이 판한하여 변화가 있어야만 호출 됨 setNeedsDisplay(): 다음주기에서 draw 메서드를 통해 뷰를 다시 그려줘야 함을 시스템에게 알림. 2023. 6. 21.
iOS 정적 링킹, 동적 링킹 정적링킹 링커가 프로그램이 필요로 하는 부분을 라이브러리에서 찾아 실행파일에다 복사 실행 파일 내에 라이브러리 코드가 저장되어 메모리가 큼 동적링킹 라이브러리가 필요할 때 라이브러리 메모리로 점프해 실행한 후 다시 돌아옴 메모리는 아낄 수 있지만, 먼 거리로 점프해야해서 성능상 좋지 않음(overhead) iOS 에서 embed = 참조 => 동적 Do not embed(복사) => 정적 .a 정적 라이브러리 2023. 6. 20.
Swift, Objective-C 함께 사용하기 Framework 안에서는 Bridging-Header를 설정할 수 없다. 프레임워크를 만들 때 생성되는 프레임워크명.h 헤더 파일에 Objective-C Header을 import 해줘야 한다. Build Phase에서 헤더 파일들을 Public으로 이동시켜줘야 사용 가능하다. Include of non-modular header inside framework module 에러는 헤더 파일이 Public가아닌 Project 또는 Private일 때 나타난다. Objective-c 파일에서는 외부 라이브러리 Objective-c 헤더 파일 참조 시 헤더파일이 프로젝트 내에 없더라도 참조가 가능했지만, Swift파일에서는 참조가 불가능했다. (참조: https://devshin93.tistory.com/3.. 2023. 6. 20.
[Swift] URL Encoding(인코딩) addingPercentEncoding 역할 통신을 위해 주로 rest api를 사용하는데요, 이때, addingPercentEncoding (withAllowedCharacters: .urlQueryAllowed)을 이용하여 url을 encoding 합니다. URL 허용되는 문자는 알파벳,숫자,하이픈,닷 등의 제한된 문자입니다. *그외 문자는 퍼센트 인코딩이 필요합니다 *브라우저에 한글이 입력되는 이유 -> 브라우저에서 인코딩 처리를 해주기 때문입니다. 그렇다면 addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)의 역할은 무엇일까요? 먼저 ‘퍼센트 인코딩(Percent encoding)’은 인코딩 된 문자가 %로 시작하고 뒤에 16진수로 표현되어 퍼센트 인코딩이라 부릅니다. 인코딩 과정.. 2023. 5. 10.
[RxSwift] 헷갈리는 부분 정리 RxSwift를 접하면서 개인적으로 헷갈렸던 부분을 정리해보려고 합니다. subscribe - 구독 설정 및 실행(방출) -> onError, onCompleted 방출 bind(onNext:{}) - ObservableType.bind(onNext:{}).disposed(by:disposeBag) 방식으로 사용 시 -> 메인 스레드에서 실행된다 -> 기본적으로 subscribe와 동작이 동일하나 onError, onCompleted을 방출하지 않는다. 해석: 관측할 값을 설정 후 관측하는 값이 바뀌면 방출된 값을 받아 원하는 행동을 취한다. bind(to:) - ObservableType.bint(to: textField.text){}.disposed(by:disposeBag) 방식으로 사용 시 -> .. 2023. 4. 14.
반응형