Я создаю игру Cocoa OpenGL в XCode, которую я хочу в какой-то момент распространить в магазине приложений Mac. Я не уверен, что делать, когда мое приложение сталкивается с фатальной ошибкой, а именно невозможностью создать формат пикселей или контекст OpenGL. Я думаю, что я должен показать какое-то сообщение о том, что произошло, возможно, дать пользователю форму для ввода быстрого комментария и отправить его мне (как бы я это сделал?), А затем прекратить работу. Но как лучше всего это сделать?
…
NSOpenGLPixelFormatAttribute attribs[] = {
…
NSOpenGLPFAAccelerated, // Hardware acceleration
NSOpenGLPFADoubleBuffer, // Double buffering
NSOpenGLPFAColorSize, 320, // *** THIS IS FOR TESTING FAILURE ***
0
};
// Create pixel format
pixelFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:attribs];
if (!pixelFormat) {
//////////////////////////////FATAL ERROR//////////////////////////////
}
// Create OpenGL context
openGLContext = [[NSOpenGLContext alloc] initWithFormat:pixelFormat shareContext:nil];
if (!openGLContext) {
//////////////////////////////FATAL ERROR//////////////////////////////
}
…
Обратите внимание, что я запросил размер цвета 320, чтобы просто проверить, что произойдет в этом маловероятном случае.
Я посмотрел на NSAlert
, но он больше подходит для предупреждающих сообщений, даже если стиль установлен на NSCriticalAlertStyle
. И я думаю, что после этого я должен уйти с [NSApp terminate:nil]
, но я не уверен. Что мне делать в этих случаях, чтобы быть совместимыми с другими приложениями и соответствовать способу Apple сделать это?
Обратите внимание, что это происходит только при запуске.