작성
·
15
0
강의 관련된 질문은 언제나 환영입니다 😄
코드 관련 상세하게 작성해주시면 더 좋아요! (상세코드를 붙여넣기 해주세요)
마크다운을 사용해서 편리하게 글을 작성하세요
먼저 유사한 질문이 있었는지 먼저 검색 해보는 습관~
인프런 서비스 운영 관련 문의는 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'
이렇게 두개의 오류가 뜨는데. 영상을 봐도 해당 코드와 다른게 없어서 질문드립니다. 혹시 어떤 부분이 문제일까요?
답변 1
0
안녕하세요. nonehour 님
현재 코드에서 두 가지 주요 문제가 발생하고 있습니다:
ObservableObject 프로토콜 준수 실패: UserViewModel
클래스가 ObservableObject
를 채택했지만 필요한 요구사항을 충족하지 못하고 있습니다.
Combine 프레임워크 누락: @Published
프로퍼티 래퍼와 관련된 초기화자를 찾을 수 없다는 에러가 발생합니다.
파일 상단의 import 구문을 다음과 같이 수정해주세요:
import SwiftUI
import Combine // 이 줄을 추가해주세요
이런 현상이 발생하는 이유는 개발 환경의 차이 때문입니다:
Xcode 버전 차이: 최신 Xcode에서는 SwiftUI를 import할 때 Combine도 함께 자동으로 가져오는 경우가 있지만, 구버전이나 특정 설정에서는 그렇지 않을 수 있습니다.
iOS 배포 타겟: 프로젝트의 iOS 최소 지원 버전에 따라 자동 import 동작이 달라질 수 있습니다.
프로젝트 설정: 프로젝트 생성 방식이나 빌드 설정에 따라 모듈 import 방식이 다를 수 있습니다.
@Published
와 ObservableObject
는 실제로 Combine 프레임워크의 핵심 구성 요소입니다. 따라서 이들을 사용할 때는 명시적으로 Combine을 import하는 것이 가장 안전하고 명확한 방법입니다.
강의 예제와 달라서 에러가 발생된점 양해 드립니다.
감사합니다.
Jacob