해결된 질문
작성
·
35
답변 2
0
o2k님 안녕하세요
Swift6에서는 @Model같은 매크로로 변수에 접근할때는 모두 var로 선언해야 한다고 하네요
해당부분을 let -> var로 변경해주시면 됩니다!
따로 에러는 뜨지 않는데 기존 수업 내용대로라면 ContentView의 Preview에서
친구 만나기, 과제 제출하기, 푹쉬기가 todoList 배열?에 나와야하지 않나요?
(해당 파일은 수업 자료(2 완성코드(이전 섹션 Todo앱에 SwiftData 적용한 코드))입니다!)
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 myVariable: String {
// accessor code
}
계산 속성 사용: 만약 변수 자체는 변경되지 않지만 접근자를 필요로 한다면, 계산 속성을 사용하여 내부에서 변경하도록 코드를 작성할 수 있습니다.
Swift 설정 확인: 프로젝트의 Swift 컴파일러 설정에서 “Swift Language Version”을 확인하고, Swift 6의 새로운 동작을 이해하고 적용할 수 있도록 코드베이스를 업데이트하세요.
추가적으로 iOS 개발 관련 유사한 질문과 해결책을 공유한 게시물도 참고하시면 도움이 될 수 있습니다:
문제가 지속된다면, 발생된 코드와 함께 추가적인 환경 설정이나 사용 버전 정보를 공유해 주시면 보다 구체적인 도움을 드릴 수 있을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
해당 Todo 프로젝트에서 let -> var로 변경해도 정상 실행이 안되는데 혹시 업데이트 이후 변경이 있어서 그런걸까요?