>source

내 JSON 데이터를 내 모델로 디코딩할 수 없습니다. MVVM 패턴을 사용하려고 시도하는 것은 이번이 처음이며 어떤 이유로 제목이나 ID와 같은 모델 변수에 대한 참조를 얻을 수 없는지 알 수 없습니다. 아래 표시된 오류 외에도 '이 속성은 Movie에 정의되어 있으며 이 컨텍스트에서 사용하지 못할 수 있습니다'라는 메시지가 표시됩니다.

class MovieViewModel {
let movie: APIResponse
init(movie: APIResponse) {
    self.movie= movie
}
var title: String {
    return movie.data.title //Value of type [Movie] has no member 'title'
}
     }
   struct APIResponse: Codable {
      var data: [Movie]
 }
   struct Movie: Codable {
       var id: String
       var title: String
   }
  class MovieListViewModel {
private var movieViewModels= [MovieViewModel]()
func addMovieViewModels(_ vm: MovieViewModel) {
    movieViewModels.append(vm)
}
func numberOfRows(_ section: Int) -> Int {
    return movieViewModels.count
}
func modelAtIndex(_ Index: Int) -> GiphyViewModel {
    return movieViewModels[Index]
}

}

movie.data는 Array이기 때문에 데이터에 여러 영화가 있을 수 있습니다. 그러면 어떤 타이틀을 하게 될까요? 그리고 당신의 이름은 혼란스럽습니다. MovieViewModel에서 영화는 영화가 아니라 APIResponse입니다.

Larme2022-02-15 10:51:14

@Larme 테이블 뷰의 특정 행에 대한 제목으로 설정하려고 합니다.

soRazor2022-02-15 10:51:14

이 작업을 수행하는 방식을 다시 생각해야 합니다. MovieViewModel 클래스는 여러 영화를 포함하는 비디오 저장소입니다. 누군가가 "영화 제목이 뭐죠?"라고 묻습니다. 특정 영화를 참조하고 제목을 추출하려면 해당 배열의 위치가 필요합니다.

Will2022-02-15 10:51:14

모든 영화를 포함하는 하나의 보기 모델과 단일 영화를 포함하는 하나의 보기 모델을 원할 것입니다.

Joakim Danielson2022-02-15 10:51:14
  • 이전 지속자 없음: Fluent nHibernate 예외
  • 다음 unity3d : GetComponent 대신 TryGetComponent를 사용해야 하는 이유가 있습니까?