gpt4 book ai didi

iphone - 升级到 iOS 4.2 后应用程序启动时显示白屏

转载 作者:行者123 更新时间:2023-12-03 19:45:28 24 4
gpt4 key购买 nike

在过去的几周里,我一直在开发一个使用 SoundManager 类的应用程序,我是通过此博客文章的评论找到该类的: http://www.gehacktes.net/2009/03/iphone-programming-part-6-multiple-sounds-with-openal/

David Evans 在评论中提供了 SoundManager 和测试器应用程序的链接。我不允许提供第二个链接,因此我将提及他链接到的 ZIP 文件的名称:声音测试仪.zip

我对这段代码非常满意,直到 iOS 4.2 发布。相应地更新我的 iPad 和 Xcode 后,我使用 SoundManager 类的应用程序仅显示带有标题的导航栏。屏幕的其余部分是白色的。这不是 iPad 特有的行为。我在升级到 iOS 4.2 的 iPhone4 和 iPhone 3G 上也看到过同样的情况。

在模拟器中运行应用程序时,我得到了相同的结果。问题是我在控制台窗口中没有收到任何错误消息,也根本没有生成和编译错误。对于几个月前才开始使用 iPhone SDK 的 iPhone 开发人员来说,这非常令人沮丧且很难修复。

有谁知道什么可能损坏以及如何修复它?如有任何帮助,我们将不胜感激!

最佳答案

有人请向我开枪...

在我从 iPhone Developer's Cookbook 中写下的一段代码的帮助下刚刚发现了问题。

问题不在于 SoundManager(幸运的是,它仍然工作正常!),而在于 App Delegate 类中的 application:didFinishLaunchingWithOptions: 方法。

以下代码在 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 release]。由于某种原因,在 iOS 3.2 中释放导航 Controller 并不是一个问题。在 iOS 4.2 中,它会使屏幕变白。

我发现这个方法有问题,因为它是最后执行的方法。反过来,我通过将这段代码添加到项目中的每个类中发现了这一点:

-(BOOL) respondsToSelector:(SEL)aSelector {
printf("SELECTOR: %s\n", [NSStringFromSelector(aSelector) UTF8String]);
return [super respondsToSelector:aSelector];
}

这段代码记录了所有被调用的方法。

关于iphone - 升级到 iOS 4.2 后应用程序启动时显示白屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4266319/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com