Objective c 转换为圆弧后的根视图控制器警告

Objective c 转换为圆弧后的根视图控制器警告,objective-c,ios,opengl-es,automatic-ref-counting,Objective C,Ios,Opengl Es,Automatic Ref Counting,我正在将我的opengl游戏转换为ARC,并在应用程序启动时遇到以下错误/警告消息: 在应用程序启动结束时,应用程序应该有一个根视图控制器 我没有使用nib或xib文件来创建视图或窗口。在非arc代码中,一切都可以正常工作(现在已经有好几年了) 在错误/警告之后,游戏继续进行,运行良好,但我想知道是什么原因导致了这一点,因为它可能会导致问题 我的猜测是,由于它是arc,有些东西没有被正确地保留,但我不知道是什么。有什么想法吗?下面是我如何创建opengl视图和窗口 -(BOOL)applicat

我正在将我的opengl游戏转换为ARC,并在应用程序启动时遇到以下错误/警告消息:

在应用程序启动结束时,应用程序应该有一个根视图控制器

我没有使用nib或xib文件来创建视图或窗口。在非arc代码中,一切都可以正常工作(现在已经有好几年了)

在错误/警告之后,游戏继续进行,运行良好,但我想知道是什么原因导致了这一点,因为它可能会导致问题

我的猜测是,由于它是arc,有些东西没有被正确地保留,但我不知道是什么。有什么想法吗?下面是我如何创建opengl视图和窗口

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    [window setUserInteractionEnabled:YES];
    [window setMultipleTouchEnabled:YES];

    glView = [[EAGLView alloc] initWithFrame:[UIScreen mainScreen].bounds];

    [window addSubview:glView];
    [window makeKeyAndVisible];

    [glView performSelectorOnMainThread:@selector(startMainGameLoop) withObject:nil waitUntilDone:NO]; 

    return YES;
}
而且

@interface GameAppDelegate : NSObject <UIApplicationDelegate> 
{
    UIWindow *window;
    EAGLView *glView;
}
@接口GameAppDelegate:NSObject
{
UIWindow*窗口;
伊格尔维尤*glView;
}

您可能需要为glView使用@property和@Synthesis。

在应用程序启动结束时,“
应用程序预计会有一个根视图控制器。
”对于许多没有在Xcode 4.2的iOS5中为其应用程序委托的窗口属性设置rootViewController属性的人,会弹出消息(不依赖弧)

现在,这似乎是一个友好的警告。虽然一般的感觉是,这将成为一种规则

也许值得一看Xcode中“OpenGL游戏”的项目模板。这似乎是苹果希望所有应用程序结构化的方式

更改为

@合成窗口

而不是


@合成窗口=_窗口

它可能不依赖于弧,但它只发生在已启用弧的代码上。