我正在运行cocos2d-iphone 1.0.0并遵循this教程将cocos2d用于ARC。不幸的是,每当我尝试将TMX Tiled Map添加到CCLayer时,我都会收到'SIGABRT'崩溃错误。我已将此问题追溯到-(BOOL)checkForGLExtension:(NSString *)searchName
,甚至在此函数中追溯到NSString *extensionsString = [NSString stringWithCString:glExtensions encoding: NSASCIIStringEncoding];
这是checkForGLExtension函数:
- (BOOL) checkForGLExtension:(NSString *)searchName {
// For best results, extensionsNames should be stored in your renderer so that it does not
// need to be recreated on each invocation.
NSLog(@"%@", glExtensions);
NSString *extensionsString = [NSString stringWithCString:glExtensions encoding: NSASCIIStringEncoding];
NSLog(@"%@", extensionsString);
NSArray *extensionsNames = [extensionsString componentsSeparatedByString:@" "]; }
encoding:
的{{1}}部分可能会导致应用程序崩溃。我在NSString *extensionsString = [NSString stringWithCString:glExtensions encoding: NSASCIIStringEncoding];
,GL_VENDOR
,GL_VERSION
甚至GL_RENDERER
的日志中也收到了NULL。
回顾一下OpenGLES.framework中的gl.h,向我展示了这个:
glExtensions
其中所有这些都是NULL。
答案 0 :(得分:4)
注意:我不知道iOS开发:)
从glGetString获取NULL通常意味着OpenGL上下文未绑定或未正确创建。你应该检查一下。同时用glGetError检查GL错误。