안녕하십니까? 강사님. 357강을 실습하는 도중에 문의가 있어 질문드립니다. 개발하는데는 큰 이슈가 아니지만 나름 즉각적인 개발결과를 확인하는데는 필요할거 같아 문의 올립니다. 제가 Xcode 16.4를 쓰고 있습니다. 강의에서 언급하신 내용대로 코드를 해도 live view가 보이지 않습니다. 제가 뭔가를 놓친것인지 궁금해서 문의 올립니다.
Movie App_4 강의 11:08초 화면 보시면 dataTask 내에 클로저 부분에서 return을 주면 dataTask의 클로저만 끝나는거 아닌가요? 제가 이해한대로 해석한다면 dataTask 클로저 내에 있는 completion 클로저가 실행 된 뒤 return으로 인해 dataTask클로저가 종료되고, 그 이후 메인스레드에 작성 해 놓은 completion(nil) 또한 실행 되어서 총 두번 실행 되는게 아닌가요?? 그리고 dataTask는 비동기 처리로 인해서 completion(nil)이 먼저 실행되고 그 다음에 dataTask내에 있는 클로저가 실행 될 수도 있지 않나요? 어렵네요
SwiftData를 사용해서 TodoList 앱을 만들어보는 중입니다. 강의를 듣기 전에 복습 차원에서 먼저 구현해봤는데, 예상과 다른 동작을 발견했습니다. 처음에는 데이터를 저장하기 위해 modelContext.save() 를 명시적으로 호출해야 할 것이라고 생각했습니다. 그런데 실제로 코드를 작성하고 테스트해보니, .save() 메서드를 호출하지 않아도 데이터가 자동으로 저장되고 있었습니다. SwiftData에서 데이터가 자동으로 저장되는 특정한 시점이나 이벤트가 있나요? import SwiftUI struct TodoDetail: View { @Binding var todo: TodoList @Environment(\.modelContext) private var modelContext var body: some View { VStack { // placeHolder 작성 TextField("할 일을 입력하세요", text: $todo.title) .font(.title2) .padding(10) .overlay( RoundedRectangle(cornerRadius: 10) .stroke(style: StrokeStyle(lineWidth: 1)) ) TextEditor(text: $todo.todoDesc) .padding(10) .overlay( RoundedRectangle(cornerRadius: 10) .stroke(style: StrokeStyle(lineWidth: 1)) ) } .padding() .navigationTitle("할 일을 작성하세요.") .toolbar{ ToolbarItem{ Button("저장") { do { // try modelContext.save() } catch { print("Error Context Save: \(error)") } } } } } } /// 코드 셍략
예제 코드대로 작성했는데, Referencing initializer 'init(_:content:)' on 'ForEach' requires that 'Todo' conform to 'Identifiable' 해당 오류 메세지가 반환됩니다. Identifiable을 넣어줘야하는걸까요?!
안녕하십니까? 강사님 섹션 26.의 308강을 실습 중입니다. gpx 파일이 xcode에 인식이 잘 안됩니다. 시뮬레이팅이라 넘어가도 될 사항이기도 한데, 한번 눈으로 확인해보고 싶은 마음이 들어서 다시 질문 올립니다. 혹시 몰라 XCode와 맥북을 여러 차례 재시동도 해보았습니다. 바쁘시더라도 한번 봐주시면 감사하겠습니다.
앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
앨런님 안녕하세요! 좋은 강의 잘 듣고 있습니다. 현재 스토리보드 앱 말고, 소스 코드로 앱 만드는 부분을 시간이 촉박해서 배속 듣기 밖에 못했습니다.. (실습을 못했습니다..) 이 부분이 너무 아쉬워서 실습을 하면서 다시 듣고 싶은데... 수강기간 연장 부탁드려도 될까요 ..?
안녕하세요! Swift Concurrency 강의 너무 잘 듣고 있습니다. 5강 weak self 처리 관련하여 질문이 있는데요. Task 클로저의 경우 작업이 끝나는 즉시 내부 클로저가 소멸하기 때문에 클로저 내부에서 캡처된 참조도 해조되어 강한 순환 참조가 발생하지 않는다고 나와있는데, 이는 DispatchQueue에 전달하는 클로저에서도 마찬가지 아닌가요? DispatchQueue에 전달된 클로저도 작업이 완료되면 메모리에서 해제되는 것으로 알고 있어서, 약간의 혼란이 생겼습니다. DispatchQueue.global().async { self.processData() // self를 강하게 캡처 } // 클로저가 실행되는 동안 self가 메모리에 유지되며, 작업 완료 후 클로저가 해제되면 self도 참조카운트가 감소되는 것으로 알고 있습니다. 그렇다면 Task와 DispatchQueue의 차이점은 'self를 명시적으로 쓸 필요 없다/써야 한다' 뿐이지, 순환 참조 관련된 처리는 다르지 않지 않을까 하는 고민인데요. 뭔가 제가 잘못 이해한 부분이 있을 것 같습니다. 혹시 이 부분 설명 해주실 수 있으실까요? 더불어서 Task를 쓰면 순환 참조가 생길 가능성 자체도 없는 것인지 도 궁금합니다. 감사합니다 😊
앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
안녕하세요 앨런님! 좋은 강의 잘 듣고 있습니다. 강의의 수강 기간이 곧 만료되어 수강 연장을 요청드리고자 이렇게 글을 남깁니다. 업무 병행 중이라 학습 진도가 예상보다 늦어졌고, 해당 강의를 끝까지 제대로 수강하고 싶은 마음이 큽니다. 혹시 가능하다면 강의 기간을 연장해주실 수 있을지 여쭤봅니다. 항상 좋은 강의 감사드립니다!
안녕하세요 강사님 섹션22의 Step 13을 실습하고 있습니다. 화면위에는 CurrentWeather를 아래쪽에는 Forecast를 출력시키려는데, 잘 안되네요. 현재날씨를 출력하는건 잘 나오는데 Forcast는 출력이 안됩니다. 갯수를 찍어보니 0이 나옵니다. 그리고 결과를 콘솔에 찍어보니 실패가 나온느거 같은데요. 어느 부분이 잘못되었는지 찾기가 힘드네요.. 힌트라도 주실 수 있나해서 글을 올립니다 .
안녕하세요. 강사님 질문 드린지 얼마안되었는데, 다시 질문 드립니다. 섹션22의 Step #10 강의를 실습하던중에 문제가 생겨서 여러번 해결해보려 했는데, 잘 안되어서 질문드립니다. 말씀하신대로 날씨 API는 잘 되어서 play ground에서 API구현을 실습했습니다. 두번째와 세번째 그림에서 보시다시피 Ignoring duplicate libraries라는 오류가 뜹니다. 실행이 안되고요, Failed to launch process. .... 이런 에러도 있네요.. 또한 그림에는 없지만 RPC Server 오류도 납니다. 정확하게 어디가 문제인지 알고 싶습니다. 부탁드리겠습니다.
강사님 요즘에 계속 질문사항을 올리고 있는 열혈 수강생입니다. 섹션21. ATS 강의를 수강하면서 실습을 하고 있는데요.. Book 프로젝트를 실습하던중에 DetailView화면에서 북마크버튼을 터치하면 런타임 오류가 납니다. 시뮬레이터는 Iphone 15 Pro로 했는데, 런타임 오류가 납니다. 어디가 잘못됐는지 도통 잡히지가 안네요. 조언 부탁드립니다.
이번 세션은 어떻게 학습하셨나요? 강의를 들으면서 어떤 생각의 변화나 깨달음이 있었나요? 그 변화나 깨달음을, 지금 나의 학습이나 작업에 어떻게 적용해볼 수 있을까요? 💬 부담 갖지 말고 편하게 써주세요! 혼자만의 정리도 좋고, 다른 사람들과 공유해도 좋아요. 여러분의 방식이 다른 사람에게도 큰 도움이 될 수 있어요 :)
이번 세션은 어떻게 학습하셨나요? 강의를 들으면서 어떤 생각의 변화나 깨달음이 있었나요? 그 변화나 깨달음을, 지금 나의 학습이나 작업에 어떻게 적용해볼 수 있을까요? 💬 부담 갖지 말고 편하게 써주세요! 혼자만의 정리도 좋고, 다른 사람들과 공유해도 좋아요. 여러분의 방식이 다른 사람에게도 큰 도움이 될 수 있어요 :)