在类型为'ViewController *的对象上找不到属性'layer‘,其中ViewController的类型为GLKView,并且我正在我的opengl项目中导入以下文件
QuartzCore/QuartzCore.h
OpenGLES/ES2/gl.h
OpenGLES/ES2/glext.h
ViewController.h的代码
@interface ViewController : GLKViewController
{
CAEAGLLayer* eaglLayer;
}@end
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;
}请告诉我哪里做错了?


发布于 2016-03-04 03:32:44
您需要引用视图,而不是控制器。
_eaglLayer = (CAEAGLLayer*) self.view.layer;应该行得通。
https://stackoverflow.com/questions/26397409
复制相似问题