如何在两个对象之间创建共享部分

时间:2016-05-16 14:18:27

标签: swift class reference

ListUser是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 JhonAnna创建了自己的电影列表

var Jhon = User(userID: 1001, userName: "Jhon")
var Anna = User(userID: 1002, userName: "Anna")

Jhon.AddList(actionMovieJhon)
Anna.AddList(actionMovieAnna) 

问题:如何将共享电影列表(sharMovie)添加到JhonAnna的词典中,以便共享中的任何内容发生变化Jhon的列表将在Anna侧更新,反之亦然。

另一方面,JhonAnna的“字典”有自己的部分和共享部分。但共享部分引用相同的列表对象

更多问题:我觉得方法self.movieList.updateValue不是update by reference

非常感谢你的帮助

1 个答案:

答案 0 :(得分:0)

代码基于&#34; Swift Apprentice提供的sorece代码,使用Swift 2.2开始编程&#34;,第14章:类

Tools -> Build System