인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

o2k님의 프로필 이미지
o2k

작성한 질문수

Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)

Swift 6 업데이트 이후 Todo 예제 실행 오류

해결된 질문

작성

·

35

1

Todo.swift에서 'Cannot expand accessors on variable declared with 'let'; this is an error in the Swift 6 language mode' 오류가 발생합니다!

답변 2

0

애구마(agmma)님의 프로필 이미지
애구마(agmma)
지식공유자

o2k님 안녕하세요
Swift6에서는 @Model같은 매크로로 변수에 접근할때는 모두 var로 선언해야 한다고 하네요
해당부분을 let -> var로 변경해주시면 됩니다!

o2k님의 프로필 이미지
o2k
질문자

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

애구마(agmma)님의 프로필 이미지
애구마(agmma)
지식공유자

음 저도 macOS랑 Xcode 전부 최신버전 이거든요
이상하네요.
에러나는 코드 부분 캡처해서 올려주시겠어요? 다시 한번 봐보겠습니다

o2k님의 프로필 이미지
o2k
질문자

스크린샷 2024-12-09 오전 10.37.50.png.webp

따로 에러는 뜨지 않는데 기존 수업 내용대로라면 ContentView의 Preview에서
친구 만나기, 과제 제출하기, 푹쉬기가 todoList 배열?에 나와야하지 않나요?
(해당 파일은 수업 자료(2 완성코드(이전 섹션 Todo앱에 SwiftData 적용한 코드))입니다!)

애구마(agmma)님의 프로필 이미지
애구마(agmma)
지식공유자

이부분은 제가 좀더 코드를 짜놨어야했는데, 아쉬운 부분입니다. ㅜㅜ

https://www.inflearn.com/community/questions/1456021/todo-%EC%95%B1%EC%97%90%EC%84%9C-%EB%AF%B8%EB%A6%AC-%EC%A0%81%EC%96%B4%EB%86%A8%EB%8D%98-%EC%9A%94%EC%86%8C%EB%93%A4%EC%9D%80-%EC%99%9C-%EC%95%88%EB%82%98%EC%98%A4%EB%82%98%EC%9A%94

 

이 링크에 제가 자세히 설명해두어서, 참고해주시기 바랍니다.

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의 최신 버전에서 언어 규칙이 더욱 엄격해졌기 때문에 발생합니다.

해결 방안

  1. ‘var’로 변경하기: 해당 변수가 필요에 따라 변할 가능성이 있다면 ‘let’ 대신 ‘var’로 선언하시면 됩니다. 이 변경은 변수의 불변성을 해제하고, 필요한 접근자를 설정할 수 있게 합니다.
   var myVariable: String {
       // accessor code
   }
  1. 계산 속성 사용: 만약 변수 자체는 변경되지 않지만 접근자를 필요로 한다면, 계산 속성을 사용하여 내부에서 변경하도록 코드를 작성할 수 있습니다.

  2. Swift 설정 확인: 프로젝트의 Swift 컴파일러 설정에서 “Swift Language Version”을 확인하고, Swift 6의 새로운 동작을 이해하고 적용할 수 있도록 코드베이스를 업데이트하세요.

추가적으로 iOS 개발 관련 유사한 질문과 해결책을 공유한 게시물도 참고하시면 도움이 될 수 있습니다:

문제가 지속된다면, 발생된 코드와 함께 추가적인 환경 설정이나 사용 버전 정보를 공유해 주시면 보다 구체적인 도움을 드릴 수 있을 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

o2k님의 프로필 이미지
o2k

작성한 질문수

질문하기