반응형

우선순위 2

[iOS, Swift] hugging priorty 및 CompressionResistancePriority 수정(programmatic)

iOS 16.1, Xcode 14.2, Swift 5, UIKit 환경에서 진행했습니다. Priority를 수정할 때에 Storyboard에서는 hugging priority와 compressionResistancePriority를 수정하기 쉬웠습니다. 코드로 뷰를 짠 후에 뷰의 priority를 수정하는 방법으로는 setContentHuggingPriority와 setContentCompressionResistancePriority 함수를 활용하면 됩니다. 코드예시 view.setContentCompressionResistancePriority(.defaultLow, for: .horizontal) view.setContentHuggingPriority(.defaultLow, for: .horizont..

iOS/코드조각 2023.03.03

[iOS, Swift] 동시성 프로그래밍 작성 시 생길 수 있는 문제

동시성 프로그래밍을 작성할 때에 3가지 문제가 생길 수 있다. 먼저 경쟁 상황으로 2개 이상의 쓰레드를 사용하여 동일한 메모리에 접근할 때, 동시에 같은 메모리에 접근하다보니 값을 변경하게 되면 여러 쓰레드에서 경쟁하여 원하지 않는 값이 나올 수 있다. 해결방법으로는 Thread-Safe한 코드를 만들어 해결할 수 있다. 두번째로는 교착상황으로 한정된 자원을 여러 쓰레드에서 사용하려할 때, 자원을 얻지 못해 다음 처리를 못하는 상태를 교착상황이라 한다. 이 때 시리얼 큐를 만들거나 설계를 변경하여 수정할 수 있다. 세번째로는 우선순위 뒤바뀜 현상이다. 작업의 서비스 품질(QoS)가 다른 상태에서 높은 서비스 품질을 가지고 있는 쓰레드가 낮은 서비스 품질의 쓰레드의 진행이 끝나고 완료되려할 때에 우선순위 ..

iOS/강의, 고찰 2022.11.01
반응형