应用显示白色屏幕上启动升级至iOS 4.2
因为我一直在使用一个SoundManager类中的类,我通过这个博客帖子的评论中发现的应用在过去的几个星期后: http://www.gehacktes.net/2009/03/iphone-programming-part-6-multiple-sounds-with-openal/应用显示白色屏幕上启动升级至iOS 4.2
链接SoundManager和测试人员应用程序在David Evans的评论中提供。我不允许提供第二个链接,所以我会提及他链接到的ZIP文件的名称: SoundTester.zip
我对此代码非常满意,直到iOS 4.2发布。在相应地更新我的iPad和Xcode之后,使用SoundManager类的应用程序仅显示带有标题的导航栏。屏幕的其余部分是白色的。这不是iPad的具体行为。我已经看到iPhone4和iPhone 3G升级到iOS 4.2的情况相同。
在模拟器中运行应用程序时,我得到了相同的结果。问题是我在控制台窗口中没有收到错误消息,也没有编译和编译错误。几个月前开始使用iPhone SDK的iPhone开发人员非常沮丧,也很难修复。
有没有人有什么线索可能已经打破,如何解决呢?任何帮助表示赞赏!
有人请拍我......
就发现了这个问题,从一段代码我从iPhone开发的食谱写下来帮助。
问题是不是SoundManager类但在应用程序(也可正常工作,幸运的!):didFinishLaunchingWithOptions:方法中在App Delegate类。
下面是导致iOS 4.2的问题的代码,但在iOS 3.2仍然有效:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Create a Navigation Controller on the fly.
// Use the View Controller as root view controller.
viewController.title = @"ThreeSounds";
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:viewController];
nav.navigationBar.barStyle = UIBarStyleBlack;
// Add the view controller's view to the window and display.
[window addSubview:nav.view];
[nav release];
[window makeKeyAndVisible];
return YES;
}
解决办法:删除这行:[NAV释放。 由于某些原因,释放导航控制器在iOS 3.2中不是问题。 在iOS 4.2中,屏幕变白。
我发现这个方法是问题,因为它是已执行的最后一个方法。这反过来,我发现通过将这段代码添加到我的项目中的每个类:
-(BOOL) respondsToSelector:(SEL)aSelector {
printf("SELECTOR: %s\n", [NSStringFromSelector(aSelector) UTF8String]);
return [super respondsToSelector:aSelector];
}
这段代码记录了所有调用的方法。
我用下面的代码 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法
window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
if (!window)
{
[self release];
return 0;
}
这种方法会造成白色画面时,我开始了我的应用程序。在3.2/4.0 SDK中可以。在SDK 4.3中它导致了这个问题。只要评论或删除此代码,如果你有。
我有同样的问题。问题是重复的UIWindow。
谢谢一堆。这指出我有权修复一个错误的错误。 – braden 2013-09-04 14:55:47