Итак, я впервые играю с областью, чтобы сохранить данные, которые будут выводиться в ячейки табличного представления, в настоящее время я храню некоторые базовые строки 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 для каждой записи перезаписывается последним изображением постера?