title: Instance variable used while 'self' is not set to the result of
body: <p>I'm working with SGAREnvioroment, and I get the following error:</p>
  
  <p><strong>Instance variable used while 'self' is not set to the result of '[(super or self) init...]'</strong></p>
  
  <p>In this piece of code:</p>
  
  <pre><code>@interface SG3DOverlayView (Private)
  
  - (id) initGLES;
  - (void) drawView;
  - (BOOL) createFramebuffer;
  - (void) destroyFramebuffer;
  
  - (void) clearTouches;
  
  @end
  
  @implementation SG3DOverlayView
  
  + (Class) layerClass
  {
      return [CAEAGLLayer class];
  }
  
  -(id) initWithFrame:(CGRect)frame
  {
      if(self = [super initWithFrame:frame]) {
          self = [self initGLES];
      }
  
      return self;
  }
  
  -(id) initGLES
  {
      self.multipleTouchEnabled = YES;
      self.exclusiveTouch = YES;
  
      CAEAGLLayer *eaglLayer = (CAEAGLLayer*) self.layer;
  
      eaglLayer.opaque = YES;
      eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys:
                                      [NSNumber numberWithBool:FALSE], kEAGLDrawablePropertyRetainedBacking,
                                      kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat,
                                      nil];
  
      context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1];
      if(!context || ![EAGLContext setCurrentContext:context] || ![self createFramebuffer]) {
          [self release];
          return nil;
      }
  
      self.backgroundColor = [UIColor clearColor];
  
      mainSubview = [[UIView alloc] initWithFrame:self.frame];
      mainSubview.backgroundColor = [UIColor clearColor];
  
      animationInterval = 1.0;
      pinchTimer = nil;
      dragging = NO;
      currentSphereRadius = 0.0;
  
      [self clearTouches];
  
      return self;
  }
  </code></pre>
  
  <p>I get the "error" here:</p>
  
  <pre><code>if(!context || ![EAGLContext setCurrentContext:context] || ![self createFramebuffer]) {
  </code></pre>
  
  <p>But, as you can see, self is setup on <code>-(id) initWithFrame:(CGRect)frame</code>, and <code>-(id) initGLES</code> is private, so it is always called from <code>-(id) initWithFrame:(CGRect)frame</code>.</p>
  
  <p>So, may I have to do something to fix it?</p>