title: iOS clear layer of UIView
body: <p>I drew a few lines in the layer property of my <code>UIView</code>.
  But is there a method to clean up all the lines I drew?</p>
  
  <p>I want to clear everything that is drawn on layer of my view.</p>
  
  <p>I draw a line with the following code:</p>
  
  <pre><code>- (void)drawLine :(UIView *)drawInView :(CGPoint)startPosition :(CGPoint)endPosition
  {
      //draw the line
      linePath = CGPathCreateMutable();
      lineShape = [CAShapeLayer layer];
  
      lineShape.lineWidth = 1.0f;
      lineShape.lineCap = kCALineCapRound;;
      lineShape.strokeColor = [[UIColor whiteColor] CGColor];
  
      CGPathMoveToPoint(linePath, NULL, startPosition.x, startPosition.y);
      CGPathAddLineToPoint(linePath, NULL, endPosition.x, endPosition.y);
  
      lineShape.path = linePath;
      CGPathRelease(linePath);
      [drawInView.layer addSublayer:lineShape];
  }
  </code></pre>
  
  <p>I found some code to remove all the sublayers I drew.</p>
  
  <pre><code>-(void)clearGraph :(UIView *)viewToClear
  {
      for (CALayer *layer in viewToClear.layer.sublayers) {
          [layer removeFromSuperlayer];
      }
  }
  </code></pre>
  
  <p>But this will give an Exception:</p>
  
  <pre><code>2013-08-28 21:10:18.877 ServerInfo[12861:3f03] *** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection &lt;CALayerArray: 0x1f86b3b0&gt; was mutated while being enumerated.'
  *** First throw call stack:
  (0x336ef3e7 0x3b3ea963 0x336eeec1 0x13f7d 0x158bb 0x340082fb 0x336c4857 0x336c4503 0x336c3177 0x3363623d 0x336360c9 0x33f5a5c3 0x33ffdc45 0x15843 0x34007231 0x3b8370e1 0x3b836fa8)
  libc++abi.dylib: terminate called throwing an exception
  (lldb) 
  </code></pre>
  
  <p>I call my drawline method inside a NSTread. (doParsing method to be specific).</p>
  
  <pre><code>NSThread *myThread =[[NSThread alloc]initWithTarget:self selector:@selector(callTimer) object:nil];
      [myThread start];
  
  - (void)callTimer
  {
      NSRunLoop* runLoop = [NSRunLoop currentRunLoop];
      [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(doParsing) userInfo:nil repeats:YES];
      [runLoop run];
  }
  </code></pre>