我正在尝试我的第一个UINavigationController应用程序,它现在崩溃了。如果我注释掉以navController开头的行,我不会崩溃,但是如果当然应用程序也不起作用。
(注意:我的环境是IOS 4.2和Xcode 3.2)
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
WpglViewController *firstViewController = [[WpglViewController alloc] init];
navController = [[UINavigationController alloc] initWithRootViewController:firstViewController];
[firstViewController release];
[window addSubview:navController.view];
[self.window makeKeyAndVisible];
return YES;
}
这是崩溃信息。有人能指出我正确的方向吗?谢谢您的帮助。
2011-09-04 07:59:49.309 wpgl[7302:207] -[WpglViewController title]: unrecognized selector sent to instance 0x4b134c0
2011-09-04 07:59:49.313 wpgl[7302:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[WpglViewController title]: unrecognized selector sent to instance 0x4b134c0'
*** Call stack at first throw:
(
0 CoreFoundation 0x00ecdbe9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x00cc25c2 objc_exception_throw + 47
2 CoreFoundation 0x00ecf6fb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x00e3f366 ___forwarding___ + 966
4 CoreFoundation 0x00e3ef22 _CF_forwarding_prep_0 + 50
5 UIKit 0x00375781 -[UINavigationController pushViewController:transition:forceImmediate:] + 743
6 UIKit 0x0036e4a0 -[UINavigationController pushViewController:animated:] + 62
7 UIKit 0x00370d98 -[UINavigationController initWithRootViewController:] + 78
8 wpgl 0x00001df9 -[wpglAppDelegate application:didFinishLaunchingWithOptions:] + 146
9 UIKit 0x002b81fa -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1163
10 UIKit 0x002ba55e -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 439
11 UIKit 0x002c4db2 -[UIApplication handleEvent:withNewEvent:] + 1533
12 UIKit 0x002bd202 -[UIApplication sendEvent:] + 71
13 UIKit 0x002c2732 _UIApplicationHandleEvent + 7576
14 GraphicsServices 0x016e4a36 PurpleEventCallback + 1550
15 CoreFoundation 0x00eaf064 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
16 CoreFoundation 0x00e0f6f7 __CFRunLoopDoSource1 + 215
17 CoreFoundation 0x00e0c983 __CFRunLoopRun + 979
18 CoreFoundation 0x00e0c240 CFRunLoopRunSpecific + 208
19 CoreFoundation 0x00e0c161 CFRunLoopRunInMode + 97
20 UIKit 0x002b9fa8 -[UIApplication _run] + 636
21 UIKit 0x002c642e UIApplicationMain + 1160
22 wpgl 0x00001d44 main + 102
23 wpgl 0x00001cd5 start + 53
)
terminate called after throwing an instance of 'NSException'
在我的WpglViewController.h文件中,我声明了以下内容:
@interface WpglViewController : NSObject <UIApplicationDelegate>
{
UILabel *servingsLabel;
UILabel *quantityLabel;
UINavigationController *navigationController;
}
@property (nonatomic, retain) IBOutlet UILabel *servingsLabel;
@property (nonatomic, retain) IBOutlet UILabel *quantityLabel;
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) UINavigationController *navigationController;
@end
在我的WpglViewController中我声明了以下内容:
#import "WpglViewController.h"
@implementation WpglViewController
@synthesize servingsLabel;
@synthesize quantityLabel;
@synthesize navigationController;
答案 0 :(得分:3)
WpglViewController需要是UIViewController的子类。
异常说WpglViewController没有响应它在UIViewController中所期望的title方法。
答案 1 :(得分:1)
2011-09-04 07:59:49.309 wpgl[7302:207] -[WpglViewController title]: unrecognized selector sent to instance 0x4b134c0
此消息说明了所有内容:您的WpglViewController没有实现方法“title”,也许您忘了@synthesize .m文件中的属性?
答案 2 :(得分:0)
检查[WpglViewController title]
显然问题出在这里,也许你在同一类的init
内调用此方法。
答案 3 :(得分:0)
确保WpglViewController
继承自UIViewController
。
答案 4 :(得分:-2)
要么没有像WpglViewController这样的类,要么你没有导入它,或者最不可能你没有用笔尖名称初始化它。 WpglViewController是一个类,你必须在另一个类中为initiliazation分配一个nib WpglViewController * firstViewController = [[WpglViewController alloc] initWithNibName:@“WpglViewController nib名称,这可能是WpglViewController,除非你改了它不要把eh .xib扩展名”] ;