Сохранение UIImages в королевстве - PullRequest
0 голосов
/ 20 апреля 2020

Итак, я впервые играю с областью, чтобы сохранить данные, которые будут выводиться в ячейки табличного представления, в настоящее время я храню некоторые базовые строки c, которые довольно хорошо сохраняются и загружаются. Однако я бы очень хотел хранить изображения (и, возможно, NSNumber)

, класс Cinema

class Cinema : Object {
    @objc dynamic var name: String? = ""
    @objc dynamic var date: String? = ""
    @objc dynamic var format: String? = ""
    @objc dynamic var poster: String? = ""
    @objc dynamic var rating: NSNumber? //NSNumber not a supported @objc type

     override class func primaryKey() -> String? {
        return "name"
    }
}

saveButton

 @IBAction func saveButton(_ sender: Any) {
      let newMovie = Cinema()

        newMovie.name = movieTitle
        newMovie.date = movieReleaseDate
        newMovie.format = formatLabel.text!
        newMovie.poster = posterUrl
        newMovie.rating = movieRatingString

        do {
            try realm.write{
                realm.add(newMovie)
            }
        } catch {
            print("Error saving name \(error)")
        }
    }

writeData

  func tableView(_ tableView: UITableView, didSelectRowAT indexPath: IndexPath) {
        if let result = results?[indexPath.row]{
            do {
                try realm.write{
                    realm.delete(result)
                    loadItems()
                }
            } catch {
                print("error deleting items \(error)")
            }
        }
    }

    func loadItems() {
        results = realm.objects(Cinema.self)

        tableView.reloadData()
    }

...

guard let movieCell = tableView.dequeueReusableCell(withIdentifier: "libCell", for: indexPath) as? LibraryMovieTableViewCell else {
            return UITableViewCell()
    }
        let baseUrl = "http://image.tmdb.org/t/p/w500"
        let imageUrl = NSURL(string: baseUrl + posterUrl)
        movieCell.cellImageView.setImageWith(imageUrl! as URL)

У меня проблема в том, что posterUrl - строка, переданная из предыдущего контроллера представления и вызывается в функции cellForRowAt для обновления movieCell.cellImageView.setImageWith(imageUrl! as URL), так как movieCell происходит из файла tableViewCell. Я не могу получить к нему доступ, моя функция loadItems ().

В настоящее время при запуске приложение сохраняет и выводит строковые данные правильно, однако cellImageView для каждой записи перезаписывается последним изображением постера?

...