List
和User
是2个类。 List
包含标题和某些人可能喜欢的电影。班级User
有一个AddList(_: List)
方法。它将新电影列表添加到User
类型
class List {
var title : String = "General"
var movies = [String]()
init(title: String){
self.title = title
}
init(title: String, movies: [String]){
self.title = title
self.movies = movies
}
}
class User {
private let userID: Int
let userName: String
private var movieList = [String: [String]]() // the list is a Dictionaly, the value of the dictionalry is a string array
init(userID: Int, userName: String){
self.userID = userID
self.userName = userName
}
func AddList(newMovieList: List) -> Dictionary<String, [String]> {
self.movieList.updateValue(newMovieList.movies, forKey: newMovieList.title)
return self.movieList
}
}
3电影列表已经被隐瞒如下
var actionMovieJhon = List(title: "Action", movies: ["The Equalizer", "Mad Max: Fury Road", "Star Wars"])
var actionMovieAnna = List(title: "Action", movies: ["Batman v Superman: Dawn of Justice", "American Sniper", "The Martia"])
var shareMovie = List(title: "ShareAction", movies: ["MovieA", "MovieB", "MovieC"])
然后2 User
objdects Jhon
和Anna
创建了自己的电影列表
var Jhon = User(userID: 1001, userName: "Jhon")
var Anna = User(userID: 1002, userName: "Anna")
Jhon.AddList(actionMovieJhon)
Anna.AddList(actionMovieAnna)
问题:如何将共享电影列表(sharMovie
)添加到Jhon
和Anna
的词典中,以便共享中的任何内容发生变化Jhon
的列表将在Anna
侧更新,反之亦然。
另一方面,Jhon
和Anna
的“字典”有自己的部分和共享部分。但共享部分引用相同的列表对象
更多问题:我觉得方法self.movieList.updateValue
不是update by reference
非常感谢你的帮助
答案 0 :(得分:0)
代码基于&#34; Swift Apprentice提供的sorece代码,使用Swift 2.2开始编程&#34;,第14章:类
Tools -> Build System