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 списка фильмов были beend inilizied как последовать
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
с þér собственного списка фильмов были создан
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
Большое спасибо за вашу помощь
Потому что вы объявили 'list' как класс, он использует эталонную semanti CS. Поэтому, если вы назначаете один и тот же список для обоих пользователей, они могут изменить его. Все должно работать как есть. –
Я пробовал немного, но я думаю, что 'self.movieList.updateValue' не обновляется по ссылке – SLN