从Swift中的子类访问父类属性

时间:2017-09-26 05:14:04

标签: ios arrays swift inheritance

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

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

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

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

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

问题是bookmark的{​​{1}}仍为self.movies,尽管它们已加入书签。

为确保在我为某些电影添加书签后,我在false中致电loadBookmarkedMovie()并实际返回已添加书签的电影,但在MoviesVC BookmarkedVC

1 个答案:

答案 0 :(得分:0)

由于Inheritance,您只能获得超级的属性(functionsvariables)。

所以如果你继承MoviesVC。 。

  1. 现在BookmarkVCmovies:[Movie](假设movies在声明时已初始化)。
  2. 所有bookmark == false(默认情况下为false,因为您尚未更新BookmarkVC中的书签)
  3. 所以。 。 func loadBookmarkedMovie()肯定会返回nil。要将数据从MoviesVC传递到BookmarkedVC,您需要使用SegueDelegate