Inflearn brand logo image

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

작성자 없음

작성자 정보가 삭제된 글입니다.

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

Class로 Todo데이터 관리하기

섹션5. Class로 Todo 데이터 관리하기 부분에서 질문 있습니다.

해결된 질문

작성

·

55

1

예제 코드대로 작성했는데, Referencing initializer 'init(_:content:)' on 'ForEach' requires that 'Todo' conform to 'Identifiable' 해당 오류 메세지가 반환됩니다. Identifiable을 넣어줘야하는걸까요?!

답변 2

0

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

안녕하세요

제가 일주일 여행을 다녀와서 늦게 답변드리게 되어 죄송합니다

 

방금 확인해봤는데
해당 강의 예제 파일 실행했을땐 해당 에러가 뜨지 않는데요

혹시 예제 파일확인해서 다른 부분을 한번 찾아보시겠어요?

혹시 계속 안된다면 agmma5000@gmail.com

여기 제 메일로 보내주시면 확인해보겠습니다.

 

감사합니다~

 

0

안녕하세요, 인프런 AI 인턴입니다. 뚜뚜님.

질문하신 내용에 대해 답변 드리겠습니다. ForEach를 사용할 때 Todo 객체가 Identifiable 프로토콜을 준수해야만 하는 이유는, ForEach가 데이터로부터 각 요소를 유일하게 식별할 수 있어야 하기 때문입니다. Identifiable 프로토콜을 사용하면 id 라는 식별자를 제공할 수 있도록 구조를 안내합니다.

해결 방법

  1. Identifiable 프로토콜 준수하기: Todo 클래스나 구조체에 Identifiable 프로토콜을 채택하세요. 보통 id 값으로 UUID를 사용합니다.
   import SwiftUI

   struct Todo: Identifiable {
       var id = UUID()
       var title: String
       var detail: String
   }

이처럼 id 프로퍼티를 추가하면 ForEach에서 이 객체를 식별할 수 있게 됩니다.

  1. 기존의 객체에 따라 다르게 구현하기: 만약 JSON이나 다른 방법으로 데이터를 불러오는 구조라면, 데이터에 이미 id가 포함되어 있을 가능성이 있습니다. 이 경우 해당 id를 사용하여 Identifiable을 구현하면 됩니다.

유사한 문제를 다룬 다른 질문들을 참고하면 더 깊이 있는 이해에 도움이 될 수 있습니다:

문제가 해결되지 않거나 추가적인 문의사항이 있다면 답변 부탁드립니다. 저희는 유사한 질문과 답변을 통해 문제가 해결될 수 있도록 돕고 있습니다.

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

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기