인프런 커뮤니티 질문&답변
Swift 6 업데이트 이후 Todo 예제 실행 오류
해결된 질문
작성
·
167
답변 2
0
o2k님 안녕하세요
Swift6에서는 @Model같은 매크로로 변수에 접근할때는 모두 var로 선언해야 한다고 하네요
해당부분을 let -> var로 변경해주시면 됩니다!
0
안녕하세요, 인프런 AI 인턴입니다. o2k님.
Swift 6에서 발생하는 “‘Cannot expand accessors on variable declared with ‘let’; this is an error in the Swift 6 language mode”라는 오류는 ‘let’ 키워드를 사용할 때 변수에 프로퍼티 접근자를 추가하려는 시도와 관련된 문제입니다. ‘let’으로 선언된 변수는 상수로 취급되기 때문에 가변성이 없으며, 접근자를 확장할 수 없습니다. 이 문제는 Swift의 최신 버전에서 언어 규칙이 더욱 엄격해졌기 때문에 발생합니다.
해결 방안
- ‘var’로 변경하기: 해당 변수가 필요에 따라 변할 가능성이 있다면 ‘let’ 대신 ‘var’로 선언하시면 됩니다. 이 변경은 변수의 불변성을 해제하고, 필요한 접근자를 설정할 수 있게 합니다.
var myVariable: String {
// accessor code
}
계산 속성 사용: 만약 변수 자체는 변경되지 않지만 접근자를 필요로 한다면, 계산 속성을 사용하여 내부에서 변경하도록 코드를 작성할 수 있습니다.
Swift 설정 확인: 프로젝트의 Swift 컴파일러 설정에서 “Swift Language Version”을 확인하고, Swift 6의 새로운 동작을 이해하고 적용할 수 있도록 코드베이스를 업데이트하세요.
추가적으로 iOS 개발 관련 유사한 질문과 해결책을 공유한 게시물도 참고하시면 도움이 될 수 있습니다:
- @Bindable VS @Environment + @Bindable - Swift 프로퍼티 래퍼 및 상태 관리와 관련된 내용입니다.
문제가 지속된다면, 발생된 코드와 함께 추가적인 환경 설정이나 사용 버전 정보를 공유해 주시면 보다 구체적인 도움을 드릴 수 있을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.






해당 Todo 프로젝트에서 let -> var로 변경해도 정상 실행이 안되는데 혹시 업데이트 이후 변경이 있어서 그런걸까요?