본문 바로가기

iOS/iOS

(5)
[iOS, concurrency] publishing changes from background threads is not allowed; Publishing changes from background threads is not allowed; make sure to publish values from the main thread (via operators like receive(on:)) on model updates. Background queue에서 UI 관련된 작업을 수행하면 다음 문구가 Xcode에 보라색으로 발생합니다. 해당 알람은 런타임에서 확인할 수 있습니다. Main queue에서 실행할 수 있도록 변경해주면 됩니다. 해결방법 다음과 같이main queue에서 async로 동작하도록 했습니다. DispatchQueue.main.async { [weak self] in self?.myText = "blah blah" } 왜 w..
[iOS] GCD, multithreading in iOS 2021 CS193P 강의를 참고하여 작성되었습니다. Threads 하나의 실행 단위입니다. 프로그램 내에서 실행되는 것이 있을 텐데, 그 실행되는 것 하나하나가 모두 스레드입니다. iOS에서 실행되는 스레드는 계속 변경됩니다. 실행되는 스레드 간의 변경이 아주 빠르게 처리해서, 사용자에게는 여러 작업이 동시에 일어나는 것처럼 보이도록 합니다. 아이폰에서 유튜브를 보면서 카카오톡 알림이 오는 것도 다른 스레드들이 계속 스위칭되면서 진행되는 것입니다. 스레드마다 우선 실행권한을 가질 수 있다. Queues 쓰레드는 시간적 개념이 들어가 있기 때문에 코드로 작성해서 이해하는 것이 어렵습니다. Swift에서는 이것을 큐들을 이용해서 해결했습니다. 큐는 실행할 스레드를 순서대로 줄 세워서 처리하게 만듭니다. 개..
[SwiftUI] some View의 some에 대해서 SwiftUI를 처음 시작하면 some 키워드를 접할 수 있습니다. View가 struct라는 것은 알겠는데 앞에 붙은 some이 어떤 역할을 하는 것인지 알아보겠습니다. struct ContentView: View { var body: some View { Text("jsng is here!") .padding() } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } } some keyword는 Swift에서 Opaque Types에 해당합니다. 직역하면 불투명한 타입입니다. Opaque Type은 함수나 메서드의 반환 타입을 가리는 역할을 합니다. 특정한 타입을 반환하지 않고 ..
[Swift] Struct 그리고 Class Struct and Class Swift에서 Struct와 Class는 유사한 점이 많습니다. 제공하는 기능에 대해서는 비슷할 수 있지만, 내부적으로는 차이점이 많이 있습니다. 본 내용은 CS193P - Developing Apps for iOS - lecture 3 MVVM 강의에 기반합니다. 공통점 변수(var)를 가질 수 있습니다. computed var를 가질 수 있습니다. 상수(let)을 가질 수 있습니다. 함수를 가질 수 있습니다. initializer를 가지고 있습니다. 차이점 1. value type(Struct) VS reference type(Class) Struct는 struct가 복사될 때, 새로운 복사된 struct를 전달합니다. Class는 인스턴스가 복사될 때, 인스턴스를 복사..
iOS 📱 개발에 유용한 사이트 정리 iOS 앱을 개발해본적이 없는 사람에게 처음부터 필요한 링크들을 정리합니다. (사실 나) Common [Link] ios 개발자 학습자료 [Link] ios 개발자 로드맵 iOS 개발에 필요한 로드맵이다. 2019년 기준이지만 크게변하지 않았을거라 본다. [Link] Apple Developer iOS 개발의 시작은 여기 Swift [Link] codecademy swift 문법을 익힐 수 있다. 퀴즈를 푸는 방식이라 좋다. [Link] LeetCode swift로 알고리즘 문제를 풀면서 언어 사용 감각을 익힐 수 있다. 프로그래머스에서는 몇 문제 풀어보니까 Swift에서 시간초과가 많이 발생한다. [Link] Swift 공식 문서 Swift에 언어의 공식 내용은 여기서 확인할 수 있다. iOS [Lin..