title: How to conform to NSCopying and implement copyWithZone in Swift 2?
body: <p>I would like to implement a simple <code>GKGameModel</code> in Swift 2. Apple's example is expressed in Objective-C and includes this method declaration (as required by protocol <code>NSCopying</code>from which <code>GKGameModel</code> inherits):</p>
  
  <pre><code>- (id)copyWithZone:(NSZone *)zone {
      AAPLBoard *copy = [[[self class] allocWithZone:zone] init];
      [copy setGameModel:self];
      return copy;
  }
  </code></pre>
  
  <p>How does this translate into Swift 2? Is the following appropriate in terms of efficiency and ignoring zone?</p>
  
  <pre><code>func copyWithZone(zone: NSZone) -&gt; AnyObject {
      let copy = GameModel()
      // ... copy properties
      return copy
  }
  </code></pre>