为什么 GLKView 没有上下文?

Why does a GLKView not have a context?

如果我对 GLKView 的 class 进行 NSLog,我会得到 GLKView,但为什么它没有可以分配给 EAGLContext 的上下文 属性?为什么我必须将它转换为另一个变量,然后分配 EAGLContext?

如果您在 UIViewController 子类中执行此操作,则 self.view 被声明为 return 类型为 UIView 的对象,因此您必须强制转换它。您可以使用:

((GLKView*) self.view).context = ...

请注意,这假设 self.view 确实是 GLKView

因为 GLKViewController 没有定义 glkView 属性,你可以这样做:

@property (nonatomic, readonly) GLKView* glkView;
-(GLKView*)glkView {
    return (GLKView*) self.view;
}