inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

Sorted, Filter, Map - UserViewModel 부분 오류 발생

미해결

[Lv.2] SwiftUI 중급 - Core Data와 SwiftData로 앱 완성하기

강의 관련된 질문은 언제나 환영입니다 😄 코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요) 마크다운을 사용해서 편리하게 글을 작성하세요 먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~ 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세 요 Protocol requires property 'objectWillChange' with type 'Self.ObjectWillChangePublisher' (Combine.ObservableObject.objectWillChange) Initializer 'init(wrappedValue:)' is not available due to missing import of defining module 'Combine' 이렇게 두개의 오류가 뜨는데. 영상을 봐도 해당 코드와 다른게 없어서 질문드립니다. 혹시 어떤 부분이 문제일까요?

  • ios
  • swift
  • swiftui
  • iphone-app
nonehour 댓글 1 좋아요 0 조회수 144

ViewBuilder 강의 관련 질문입니다.

해결됨

[Lv.2] SwiftUI 중급 - Core Data와 SwiftData로 앱 완성하기

강의 관련된 질문은 언제나 환영입니다 😄 코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요) 마크다운을 사용해서 편리하게 글을 작성하세요 먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~ 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요 LocalViewBuilder에서 numberPlate에 ViewBuilder 매크로를 사용해야되는 이유를 LocalViewBuilder에 선언된 ViewType을 사용하려면 이라고 설명해주셨는 데, 그것과는 상관없이 numberPlate 안에서 분기 처리된 항목들(view1, view2, view3)이 다 다른 타입(Text, VStack, Image)이라서 ViewBuilder 매크로를 사용해야되는 것이 아닐까요 ?? 설명 듣다가 헷갈려서 질문드립니다.

  • ios
  • swift
  • swiftui
  • iphone-app
duckduck 댓글 1 좋아요 0 조회수 99

CoreData Array의 변화에 따른 SwiftUI View 변화 적용(with @Observable Macro)

미해결

[Lv.2] SwiftUI 중급 - Core Data와 SwiftData로 앱 완성하기

지난번과 동일하게 자꾸, @Observation 을 활용하려다보니 문제가 많이 생기는 것 같습니다. 정확하게 차이를 이해하려고 강의를 돌려봐도 제가 이해하고 있는 바와 다른 점들이 있는 것 같아 질문 드립니다. 강의의 내용은 CoreData 를 다룰 때, fetch 로 불러온 것을 View 로 넘기기위한 변수 var savedEntities: [Fish] 를 만들고, :ObservableObject protocol 을 활용하셨습니다. 이후 View 에서 ViewModel 을 처음 초기화할 때 사용하기 위해서 @Stateobject 를 활용하여 설명을 하셨고요. 그렇다면, Observable Macro 로 Migrating 하기 진행하는데에도 문제가 없다고 생각을 했습니다. 그래서, 아래와 같이 코드를 바꾸어 보았습니다. 그런데 문제는 Viewmodel 에서 정의된 updateFish() method 가 적용되지 않습니다. List 에서 주어진 생선 이름을 tap 했을 경우, "~" 가 추가가 되어야 하는데, func updateFish(fish: Fish){ let currentName = fish.name ?? "" let newName = currentName + "~" fish.name = newName saveData() print("Updating fish name to: \(newName)") } 와 같이 print 를 찍어보았을 때, 디버그 창에서는 print 가 되지만, View 에서는 "~"가 추가되지 않는 모습을 확인할 수 있었습니다. CoreData 의 변화를 감지하지 못하는건지.. 기초강의에서 FruitModel 예시에서는 ObservableObject 대신 Observable Macro 를 적용해도 되었었거든요. 여기서도 fruitArray 이라는 배열을 사용했는데 잘 적용되었습니다. @Observable Macro 를 적용하는데에 있어서 제가 잘못 이해하고 있는 부분이 있을까요? var fruitArray: [FruitModel] 는 View에서 변화를 감지하여 실시간 Update가 가능한 반면 var savedEntities: [Fish] 는 왜 변경되어도 View에서 변화를 감지 하지 못하는지 궁금합니다. 감사합니다.

  • ios
  • swift
  • swiftui
  • iphone-app
ycc3819 댓글 2 좋아요 0 조회수 242

init-deinit의 무한루핑을 벗어나는 방법이 궁금합니다.

미해결

[Lv.2] SwiftUI 중급 - Core Data와 SwiftData로 앱 완성하기

ObservableObject를 활용하는 것보다, 새로운 Observable Macro를 활용하여 Migrating을 시도하려 했습니다. 주어진 WeakSelfInterViewModel 에 대해 @Observable을 적용하고, var data String? = nil 로 property를 만들었습니다. 하지만 Init과 Deinit이 반복되어 나타나는 무한루핑이 발생하였습니다. class WeakSelfInterViewModel{ var data: String? = nil ... } struct WeakSelfInter2: View { @State var vm: WeakSelfInterViewModel = WeakSelfInterViewModel() ... } 어떻게 해결할 수 있을까요?

  • ios
  • swift
  • swiftui
  • iphone-app
ycc3819 댓글 2 좋아요 1 조회수 210

Apple 공식 문서 보는법

해결됨

[Lv.2] SwiftUI 중급 - Core Data와 SwiftData로 앱 완성하기

안녕하세요 좋은 강의 잘 듣고 있습니다. 다름이 아니라 혹시 애플 공식 문서보는 강사님만의 꿀팁 같은게 있을까요? 공식문서를 찾아볼 수 있긴 한데 찾고자 하는걸 정확하게 검색해야 결과를 얻을 수 있고 뭔가 보기가 어렵게 되어 있는 것 같아서요... 그리고 제가 원하는 기능을 구현하려면 물론 구글링도 있지만 공식문서를 최대한 참고해서 구현 방법을 익히고 싶은데 이런 것들은 공식 문서에서 어떻게 검색해야 하나요? 예를 들어 SwiftUI에서 반복문으로 이루어진 텍스트들을 한번에 지우는 기능을 구현하고 싶은데 이에 연관된 것들을 공식 문서에서 쉽게 찾는 방법 등을 알고 싶습니다. 감사합니다.

  • ios
  • swift
  • swiftui
  • iphone-app
이재영 댓글 2 좋아요 0 조회수 360

Spacer() 를 넣으니 예제처럼 SafeArea 확보가 안됩니다.

미해결

[Lv.2] SwiftUI 중급 - Core Data와 SwiftData로 앱 완성하기

struct MatchedGemomatryEffectInter: View { @State private var isToogle: Bool = false var body: some View { VStack { RoundedRectangle(cornerRadius: 20) .frame(width: 100, height: 100) .offset(y: isToogle ? UIScreen.main.bounds.height * 0.7 : 0) Spacer() } .frame(maxWidth: .infinity,maxHeight: .infinity) .background(.green) .onTapGesture { withAnimation(.spring()) { isToogle.toggle() } } } } 안녕하세요. 동일하게 작성했는데 저는 상하 safeArea 가 채워진체 나옵니다. 타겟은 iOS15 입니다. 강의 관련된 질문은 언제나 환영입니다 😄 코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요) 마크다운을 사용해서 편리하게 글을 작성하세요 먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~ 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요

  • ios
  • swift
  • swiftui
  • iphone-app
랑프_Langpeu 댓글 3 좋아요 0 조회수 529

Local Notification 예제 문의

미해결

[Lv.2] SwiftUI 중급 - Core Data와 SwiftData로 앱 완성하기

예제를 전부 구현한 상태에서 아래 코드를 통해서 뱃지 숫자를 1씩 올려서 보내게 되어 있습니다. func scheduleNotification() { //notification 내용 설정 let content = UNMutableNotificationContent() content.title = "Local Notification 테스트 1" content.subtitle = "앱 알람 테스트 중입니다." content.sound = .default content.badge = NSNumber(value: UIApplication.shared.applicationIconBadgeNumber + 1) 하지만 아래 코드에 의해 뱃지가 0 으로 리셋되기에 항상 1만 발송하게 됩니다. .onChange(of: scenePhase) { newValue in if newValue == .active { UIApplication.shared.applicationIconBadgeNumber = 0 } } 추가적으로 5초 딜레이로 설정후 로컬노티 여러번 누른후에 앱을 종료하고 기다리면 노티가 여러개 오지만 모두 뱃지 1로 오기 때문에 앱아이콘에 뱃지는 1로 계속 옵니다. 실무에서 로컬노티에 카운터를 현재 뱃지 카운터에 + 1 해서 보내는건 실효성이 없어보이는데요. 따로 해결할 방법이 있을까요 ? 조언 부탁드립니다. 강의 관련된 질문은 언제나 환영입니다 😄 코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요) 마크다운을 사용해서 편리하게 글을 작성하세요 먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~ 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요

  • ios
  • swift
  • swiftui
  • iphone-app
랑프_Langpeu 댓글 2 좋아요 0 조회수 353

Local Notification 강의 편집오류 있어요

미해결

[Lv.2] SwiftUI 중급 - Core Data와 SwiftData로 앱 완성하기

17:29 부분에서 변수명 scenePhase 타이핑중 sce 까지만 타이핑 하고 바로 화면 이동 됩니다. 컷 편집 잘못된거 같아요. 강의 관련된 질문은 언제나 환영입니다 😄 코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요) 마크다운을 사용해서 편리하게 글을 작성하세요 먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~ 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요

  • ios
  • swift
  • swiftui
  • iphone-app
랑프_Langpeu 댓글 2 좋아요 0 조회수 261

강의중 코드폴딩 단축키 (커맨트+옵션+왼쪽방향키)

미해결

[Lv.2] SwiftUI 중급 - Core Data와 SwiftData로 앱 완성하기

강의 중 함수내 코드폴딩 단축키는 커맨드 + 옵션 + 왼쪽 방향키 입니다. Sorted,Filter,Map 강의 8:14 에 커맨드 + 쉬프트 + 왼쪽 방향키로 설명 되어 있어서 있어서 혼동 했네요. 강의 관련된 질문은 언제나 환영입니다 😄 코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요) 마크다운을 사용해서 편리하게 글을 작성하세요 먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~ 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요

  • ios
  • swift
  • swiftui
  • iphone-app
랑프_Langpeu 댓글 2 좋아요 0 조회수 227

코어데이터에 중복값 입력 방지

해결됨

[Lv.2] SwiftUI 중급 - Core Data와 SwiftData로 앱 완성하기

강사님, 안녕하세요. 강의를 보면서 코드를 작성하던 중에 코어 데이터에서 값을 입력 할 때에 중복값이 계속 들어가는것을 확인하고 이것을 막고자 합니다. 어떤 방법으로 해야 하는지요? 아니면 제가 강의 중에서 놓친 부분이 있을 수도 있으니 해당 영상의 위치를 알려주시면 살펴보겠습니다. 감사합니다.

  • ios
  • swift
  • swiftui
  • iphone-app
hooyoung.paul.lee 댓글 1 좋아요 0 조회수 334

Combine 관련 질문드립니다.

해결됨

[Lv.2] SwiftUI 중급 - Core Data와 SwiftData로 앱 완성하기

안녕하세요. 강사님. 현재 초급, 중급 강의 결제 후 아직 이전에 하던 공부가 마무리가 덜 되어서 강의를 시작하지는 않았는데요. 이제 곧 마무리하고 SwiftUI 초급부터 들어가려고 하는데 Combine도 같이 배워야 좋다고 익히 들어서 Combine에 대해서도 같이 공부를 하려고 하는데 Combine에 대한 강의 업데이트 계획이 있으신가요? 있으시다면 언제쯤 업데이트 될 지도 궁금합니다!

  • ios
  • swift
  • swiftui
  • iphone-app
열쓰 댓글 1 좋아요 0 조회수 263

if let else 질문있습니다.

해결됨

[Lv.2] SwiftUI 중급 - Core Data와 SwiftData로 앱 완성하기

1. if let text = displayText { Text(displayText!) } else { ProgressView() } 2. if displayText != nil { Text(displayText!) } else{ ProgressView() } 1번과 2번 두 코드의 차이를 모르겠습니다. if let else를 쓰게되면 장점이 무엇인가요?

  • ios
  • swift
  • swiftui
  • iphone-app
찌노 댓글 1 좋아요 0 조회수 242

강의 Weak Self 코드 실행시 오류에 대해

미해결

[Lv.2] SwiftUI 중급 - Core Data와 SwiftData로 앱 완성하기

강의에 대한 프로그램 실행을 하면 아래와 같은 에러가나고 화면상에 숫자는 "1"로 고정이 되네요. 강의 원본 소스도 같은 에러를 내보냅니다. Xcode는 15.0.1 아이폰 모델은 15 Pro입니다 콘솔 로그 초기화 시작 Snapshotting a view (0x10b42e7e0, _UIButtonBarStackView) that is not in a visible window requires afterScreenUpdates:YES. 초기화 시작 초기화 해제 Snapshotting a view (0x10597b1c0, _UIButtonBarStackView) that is not in a visible window requires afterScreenUpdates:YES. 초기화 시작 초기화 해제 소스 // // WeakSelfInter.swift // SwiftUiIntermediate // // Created by KISOO LEE on 10/7/23. // import SwiftUI // MARK: - ViewModel class WeakSelfInterViewModel: ObservableObject { @Published var data: String? = nil init() { print("초기화 시작") let currentCount = UserDefaults.standard.integer(forKey: "count") UserDefaults.standard.set(currentCount+1, forKey: "count") getData() } deinit { print("초기화 해제") let currentCount = UserDefaults.standard.integer(forKey: "count") UserDefaults.standard.set(currentCount-1, forKey: "count") } func getData() { DispatchQueue.main.asyncAfter(deadline: .now() + 10) { DispatchQueue.main.async { self.data = "NEW DATA !" } } } } // MARK: - Screen 1 struct WeakSelfInter: View { @AppStorage ("count") var count: Int? init() { count = 0 } var body: some View { NavigationView { NavigationLink("2번째 페이지로 이동"){ WeakSelfInter2() } .navigationTitle("1번째 페이지") //: NavigationLink } //: NavigationView .overlay( Text("\(count ?? 0)") .font(.largeTitle) .padding() .background(Color.green.cornerRadius(10)) .padding() , alignment: .topTrailing ) } } // MARK: - Screen 2 struct WeakSelfInter2: View { @StateObject var vm: WeakSelfInterViewModel = .init() var body: some View { VStack (spacing: 10 ) { Text("2번째 페이지") .font(.largeTitle) .foregroundColor(.red) } //: VStack if let data = vm.data { // data에 String 값이 있는 경우 Text(data) } } } #Preview { WeakSelfInter() }

  • ios
  • swift
  • swiftui
  • iphone-app
coffee1oz 댓글 1 좋아요 0 조회수 673

SwiftData가 Core Data를 대체하는지요?

해결됨

[Lv.2] SwiftUI 중급 - Core Data와 SwiftData로 앱 완성하기

SwiftData가 Core Data를 대체 가능한지요? 대체 가능하다면 SwiftData를 먼저 배워도 괜찮은지 알고 싶습니다. 감사합니다.

  • ios
  • swift
  • swiftui
  • iphone-app
JongHun Han 댓글 1 좋아요 0 조회수 2136

인기 태그

인프런 TOP Writers

주간 인기글