Ios7 在GLKView类型的对象上找不到属性“layer”

Ios7 在GLKView类型的对象上找不到属性“layer”,ios7,opengl-es,xcode5.1,glkview,Ios7,Opengl Es,Xcode5.1,Glkview,在类型为“ViewController*的对象上找不到属性“layer”,其中ViewController的类型为GLKView,并且我正在我的opengl项目中导入以下文件 QuartzCore/QuartzCore.h OpenGLES/ES2/gl.h OpenGLES/ES2/glext.h ViewController.h的代码 @interface ViewController : GLKViewController { CAEAGLLayer* eaglLayer;

在类型为“ViewController*的对象上找不到属性“layer”,其中ViewController的类型为GLKView,并且我正在我的opengl项目中导入以下文件

QuartzCore/QuartzCore.h

OpenGLES/ES2/gl.h

OpenGLES/ES2/glext.h

ViewController.h的代码

@interface ViewController : GLKViewController

{

    CAEAGLLayer* eaglLayer;

}
@结束

ViewController.m

@interface ViewController ()

@property (nonatomic, strong) EAGLContext *context;
@property (nonatomic, strong) GLKBaseEffect *baseEffect;

@end 

@implementation ViewController

- (void)viewDidLoad
{
 [super viewDidLoad];
 // Do any additional setup after loading the view, typically from a nib.
 self.context = [[EAGLContext alloc] initWithAPI: kEAGLRenderingAPIOpenGLES2];
 GLKView *view = (GLKView *) self.view;
 view.context = self.context;
[EAGLContext setCurrentContext:self.context];

}
+ (Class)layerClass
{
   return [CAEAGLLayer class];
}

- (void)createLayer
{
 eaglLayer = (CAEAGLLayer *) self.layer;
 eaglLayer.opaque = YES;
}
请告诉我我做错了什么


您需要参考视图,而不是控制器

_eaglLayer = (CAEAGLLayer*) self.view.layer;

应该有用

我认为您将视图与视图控制器混为一谈。您如何知道ViewController是GLKView?因为我已经将其设置为GLKView。请参见编辑我正在附加与itI相关的图像我必须查看更多代码才能确定,但我认为您目前正在为GLKViewController的@implementation内部工作,该控件不是视图。如果这是真的,那么您应该能够通过在EditThank中执行self.view.layeraded文件代码来访问该层!我很困惑,因为这里有+layerClass方法,但您提到了ViewController。这就是访问图层的方式:GLKViewController->GLKView->CALayer。在代码中,self实际上是一个GLKViewController。因此,再次访问代码中的层应该是:self.view.layer