ios - 在 Swift 中从子类访问父类属性

标签 ios arrays swift inheritance

我有两个ViewController。首先是 MoviesVC,它显示电影列表。第二个是 BookmarkedVC,它显示用户添加书签的电影。

我在 MoviesVC 中有 movies:[Movie] 属性。 Movie 类有一个 bookmark = false 标志来确定电影是否已添加书签。当用户单击单元格上的书签按钮时,我将标志更新为 true

由于 BookmarkedVC 也显示了已添加书签的电影列表,因此我继承了 BookmarkVC: MoviesVC

BookmarkedVC viewWillAppear() 方法中,我通过调用下面的函数来获取添加书签的电影

func loadBookmarkedMovie() -> [Movie] {
    let bookmarkedMovies = self.movies.filter { return $0.bookmark == true }
    return bookmarkedMovies
}

问题是 self.movi​​esbookmark 仍然是 false,尽管它们已添加书签。

为了确保这一点,我在为一些电影添加书签后,在 MoviesVC 中调用 loadBookmarkedMovie() ,它实际上返回了已添加书签的电影,但在 BookmarkedVC 中> 它返回nil

最佳答案

由于 Inheritance您只能获取 Super Class 的属性( functionsvariables )。

所以如果你继承 MoviesVC 。 。

  1. 现在 BookmarkVCmovies:[Movie] (假设 movies 在声明时已初始化)。
  2. 所有 bookmark == false (默认 false 因为您尚未在 BookmarkVC 中更新书签)

所以。 。 func loadBookmarkedMovie() 肯定会返回 nil 。要将数据从 MoviesVC 传递到 BookmarkedVC,您只需使用 SegueDelegate .

关于ios - 在 Swift 中从子类访问父类属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46418274/

相关文章:

ios - Swift:编辑 ABPersonViewController

ios - 如何正确错误处理在 swift 中找不到的 XCUI 元素

javascript - 转换 UIWebView 中的触摸点以保存内容

C *argv[] 和 char 数组[][]

javascript - 编写比基本代码更干净的高尔夫代码

java - 检查二维数组中的相邻单元 - Java

ios - 如何使用两个 NSPredicate 获取请求 - Swift 2

ios - 在自定义 UICollectionViewCell 中缩放图像

Swift 3 prepare for segue 未被调用

comparison - 如何优雅地比较 Swift 中的元组?