2011-09-10 29 views
2

我试图扫描我的内存泄漏的应用程序(基于窗口的用XIB1),但是当我跑步时有泄漏的工具应用程序,它具有异常崩溃下运行仪器应用程序时获得NSUnknownKeyException

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIWindow 0x4d20ec0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key rootViewController.' 

奇怪的是,该应用在模拟器和设备上运行良好。

应用程序的委托代码:

#import "myAppDelegate.h" 

@implementation myAppAppDelegate 

@synthesize window; 
@synthesize myController; 


#pragma mark - 
#pragma mark Application lifecycle 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
    NSLog(@"didFinishLaunchingWithOptions"); 

    [window addSubview:myController.view]; 
    [window makeKeyAndVisible]; 

    return YES; 
} 

- (void)applicationWillResignActive:(UIApplication *)application { 
} 

- (void)applicationDidBecomeActive:(UIApplication *)application { 
} 

- (void)applicationWillTerminate:(UIApplication *)application { 
=} 

#pragma mark - 
#pragma mark Memory management 

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application { 
} 


- (void)dealloc { 
    [window release]; 
    [super dealloc]; 
} 

@end 
+0

更奇怪的是:UIWindow确实有一个'rootViewController'属性(自iOS 4.0开始)。 http://developer.apple.com/library/ios/documentation/UIKit/Reference/UIWindow_Class/UIWindowClassReference/UIWindowClassReference.html#//apple_ref/occ/instp/UIWindow/rootViewController –

+0

那么,这些信息如何对我有所帮助?我的项目中的UIWindow具有根控制器的出口。 – heximal

回答

0

通常,当有在Interface Builder一个属性,该属性设置不正确,或不存在了(寻找在Interface Builder警告),会出现此错误。

至于为什么它只会在Instruments中崩溃,可能是因为它默认会针对您的发布版本运行,并且可能会有一些优化对于错误配置的宽容度较低。

+0

你是对的。 IB中存在不正确的连接。在消除多个构建警告时我发现了它们。无论如何,你应得的这个赏金) – heximal

0

是否正常模拟器这项工作,或者在没有问题的设备?

否则你是否实现了一个自定义的根视图,即使用不同的启动NIB?

如果您上传您的应用程序代理代码这将是最好

+0

没有这个问题?如果UIWindow未与rootController连接,则不起作用。它启动并保持运行,但没有显示。 – heximal

+0

你可以发布你的应用程序委托代码!还有什么是你的构建目标版本和你使用的是什么版本的Xcode包 – Codr

+0

我已经发布了我的应用程序委托代码 - 这很平常。 – heximal

相关问题