我的AppDelegate.h文件中有以下代码:
@class mainViewController;
@class AboutViewController;
@interface iSearchAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
mainViewController *viewController;
AboutViewController *aboutController;
UINavigationController *nav;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet mainViewController *viewController;
@property (nonatomic, retain) IBOutlet AboutViewController *aboutController;
@property (nonatomic, retain) IBOutlet UINavigationController *nav;
[...IBActions declared here...]
@end
然后,在我的.m文件中:
@implementation iSearchAppDelegate
@synthesize window;
@synthesize viewController, aboutController, settingsData, nav, engines;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
[window addSubview:nav.view];
[window addSubview:aboutController.view];
[window addSubview:viewController.view];
[window makeKeyAndVisible];
}
-(IBAction)switchToHome{
[window bringSubviewToFront:viewController.view];
}
-(IBAction)switchToSettings{
[window bringSubviewToFront:nav.view];
}
-(IBAction)switchToAbout{
[window bringSubviewToFront:aboutController.view];
}
- (void)dealloc {
[viewController release];
[aboutController release];
[nav release];
[window release];
[super dealloc];
}
@end
不知何故,当我运行应用程序时,主视图表现得很好......但是,当我尝试执行切换视图的操作时,应用程序崩溃了EXC_BAD_ACCESS。
所以,我认为它与内存管理有关,但我不太确定。
感谢您提前提供任何帮助。
链接到代码的屏幕截图在这里:link ...
已解决: 我通过取出IBActions并将它们变成常规方法解决了这个问题...显然,当您将IBActions放入时,XCode不喜欢它一个AppDelegate。
答案 0 :(得分:0)
在代码的某处,您正在调用[iSearchAppDelegate performSelector:withObject:withObject:]
。您没有在此处显示该代码,但这可能是问题所在。
答案 1 :(得分:0)
...消息发送到解除分配的实例...
如果是内存管理,我的第一步是enable NSZombie
并发现被解除分组后正在发送消息的内容。我能想到的两个显而易见的事情:
让界面构建器中的控件连接到IBAction
s?