title: How to create a shared part between two object
body: <p><code>List</code> and <code>User</code> are 2 classes. <code>List</code> contains title and a set of movies someone may likes. The class <code>User</code> has a <code>AddList(_: List)</code> method. It add new movie list to object of <code>User</code> type </p>
  
  <pre><code>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) -&gt;  Dictionary&lt;String, [String]&gt; {
          self.movieList.updateValue(newMovieList.movies, forKey: newMovieList.title)
          return self.movieList
      }
  
  }
  </code></pre>
  
  <p>3 movie list had beend inilizied as follow </p>
  
  <pre><code>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"])
  </code></pre>
  
  <p>And then 2 <code>User</code> objdects <code>Jhon</code> and <code>Anna</code> with ther own movie list was created </p>
  
  <pre><code>var Jhon = User(userID: 1001, userName: "Jhon")
  var Anna = User(userID: 1002, userName: "Anna")
  
  Jhon.AddList(actionMovieJhon)
  Anna.AddList(actionMovieAnna) 
  </code></pre>
  
  <p><strong>Question</strong>: How can I add the shared movie list (<code>sharMovie</code>) into the dictionalry of <code>Jhon</code> and <code>Anna</code>, so that anything changed in the shared list of <code>Jhon</code> will get updated in the side of <code>Anna</code> and vice versa. </p>
  
  <p>In anther word, the "dictionary" of <code>Jhon</code> and <code>Anna</code> has their own part  and shared part. But the shared part is referenced to the same list object</p>
  
  <p><strong>More Question</strong>: I had feelings that the method <code>self.movieList.updateValue</code> is not  <code>update by reference</code>  </p>
  
  <p>Thanks a lot for your help </p>