title: How can I make a deep copy in Objective-C?
body: <p>I'm learning ios development and I'm confused with deep copying in Objective-C.
  For example,I have three class below. Now I want to deep copy ClassA, can anybody teach me to finish the copy method? </p>
  
  <p>A:</p>
  
  <pre><code>@interface ClassA : NSObject &lt;NSCopying&gt;
  
  @property (nonatomic, assign) int aInt;
  @property (nonatomic, retain) ClassB *bClass;
  
  @end
  </code></pre>
  
  <p>B:</p>
  
  <pre><code>@interface ClassB : NSObject &lt;NSCopying&gt;
  
  @property (nonatomic, assign) int bInt;
  @property (nonatomic, retain) ClassC *cClass;
  
  @end
  </code></pre>
  
  <p>C:</p>
  
  <pre><code>@interface ClassC : NSObject &lt;NSCopying&gt;
  
  @property (nonatomic, assign) int cInt;
  @property (nonatomic, copy) NSString *str;
  
  @end
  </code></pre>