Я пытаюсь создать приложение для архивирования фильмов для iOS.Но я получаю эту ошибку, когда пытаюсь использовать свой класс, который я определил в другом контроллере.
Тип 'Movie?'У меня нет имени участника
У меня есть 4 файла контроллера;
- movieListVC
- movieDetailVC
- movieAddVC
и 2 файла .swift;
- Файл
- Фильм (это файл, который я определил для своего класса)
Movie.swift:
class Movie: NSObject {
var name : String
var director : String
var year : String
var posterURL : String
override init(){
self.name = ""
self.director = ""
self.year = ""
self.posterURL = ""
}
}
Я могу достичь своего класса, когда я использую movieListVC, как и должно быть.
movieListVC:
var selectedMovie : Movie?
.
.
.
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.selectedMovie = Movie()
let temp = self.movies[indexPath.row] as! Dictionary<String, AnyObject>
selectedMovie!.name = temp["name"]! as! String
selectedMovie!.director = temp["director"] as! String
selectedMovie!.year = temp["year"] as! String
selectedMovie!.posterURL = temp["posterURL"] as! String
self.performSegue(withIdentifier: "detail", sender: self)
let movieName = temp["name"] as! String
print("Name of the selected movie: \(movieName)")
}
Xcode не выдает никакой ошибки для моего movieListVC, но когда я использую ту же вещь в movieDetailVC, он выдает мне ошибку.
movieDetailVC:
var movieToShow : Movie? // Expected member name or constructor call after type name
.
.
.
override func viewDidLoad() {
super.viewDidLoad()
if (self.movieToShow == nil) {
return;
}
labelMovieName.text = movieToShow!.name // Type 'Movie?' has no member 'name'
labelMovieDirector.text = movieToShow!.director // Type 'Movie?' has no member 'name'
labelMovieYear.text = movieToShow!.year // Type 'Movie?' has no member 'name'
let image = UIImage(data: try! Data(contentsOf:
URL(string: movieToShow!.posterURL))) // Type 'Movie?' has no member 'name'
imageViewPoster.image = image
}
Редактировать 1: я также использую movieToShow здесь для информации:
override func prepare(for segue: UIStoryboardSegue?, sender: Any!) {
if segue!.identifier == "detail" {
let viewController:movieDetailViewController = segue!.destination as! movieDetailViewController
viewController.movieToShow = self.selectedMovie
}
}