쉬운 예제를 만들고 있습니다. func : filterByYear를 사용하여 연도별로 영화를 필터링하려고합니다. 나는 바닥에 한 줄에 오류가 있습니다 'VAR filterYear = MovieArchive.filterByYear (1980)'컴파일러 정보는 다음과 같습니다 '유형'MovieArchive년별 필터링 방법 호출 방법
import UIKit
class Movie {
let title: String
let director: String
let releaseYear: Int
init(title: String, director: String, releaseYear: Int){
self.title = title
self.director = director
self.releaseYear = releaseYear
}
}
class MovieArchive{
var movies : [Movie]
init(movies:[Movie]){
self.movies = movies
func filterByYear(year:Int) -> [Movie]{
var filteredArray = [Movie]()
for movie in movies{
if movie.releaseYear == year {
filteredArray.append(movie)
}
}
return filteredArray
}
}
}
var newMovie1 = Movie(title: "IT", director: "S.S", releaseYear: 1980)
var newMovie2 = Movie(title: "PP", director: "O.N", releaseYear: 2003)
var moviesArray = [newMovie1, newMovie2]
var myArchive = MovieArchive(movies: moviesArray)
var filterYear = MovieArchive.filterByYear(1980)
var firstMovie = filterYear[0]
print(firstMovie)
먼저 당신의 'filterByYear' 메쏘드는'init' 안에 중첩되어 있습니다 - 당신은 그것을 호출하기 위해 메인 클래스 몸체에 가져와야합니다. 마지막으로'filterByYear' 메소드를'returns movies.filter {$ 0.releaseYear == year}'로 단순화 할 수 있습니다. 나 또한 도울 수 없지만 참조 구조가 정말로 필요한 경우가 아니면 구조체를 사용해야한다고 생각합니다. – Hamish