我的第二个应用程序教程apple tut site有问题。在主要课堂上,我得到一个错误。为什么我得到“无法识别的选择器发送到实例”?
的代码:
#import "birdwatchingAppDelegate.h"
int main(int argc, char *argv[]) {
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([birdwatchingAppDelegate class]));
} }
错误:
[birdwatchingViewController viewControllers]: unrecognized selector
sent to instance 0x6d37000'
以下是其中所述错误的位置:
import "birdwatchingAppDelegate.h"
#import "BirdSightingDataController.h"
#import "birdwatchingViewController.h"
@implementation birdwatchingAppDelegate
@synthesize window = _window, dataController = _dataController, firstViewController = _firstViewController;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
birdwatchingViewController *firstViewController = (birdwatchingViewController *)[[navigationController
viewControllers] objectAtIndex:0];
BirdSightingDataController *aDataController = [[BirdSightingDataController alloc] init];
firstViewController.dataController = aDataController;
return YES;
}
和使问题的确切行是:
birdwatchingViewController *firstViewController = (birdwatchingViewController *)[[navigationController
viewControllers] objectAtIndex:0];
我找不到问题,有人可以帮忙吗?
感谢..
编辑:
通过添加的NSLog我得到了以下内容:基于评论
2012-02-10 11:24:06.059 Birdwatching[3057:f803] birdwatchingViewController
2012-02-10 11:24:06.060 Birdwatching[3057:f803] -[birdwatchingViewController viewControllers]: unrecognized selector sent to instance 0x6878250
编辑:
2012-02-10 11:51:20.696 Birdwatching[3152:f803] navi : <birdwatchingViewController: 0x6a49c20>
在崩溃之前添加此行 - NSLOG(@“%@”,[[navigationController class] description]); – NeverBe 2012-02-10 09:32:14
请自己和同事们帮忙并遵守命名约定:类名应以大写字母开头,如在“BirdwatchingViewController”和“BirdwatchingAppDelegate”中。所有自定义类型都是如此(例如枚举)。变量和方法应该以小写字符开头。 – DarkDust 2012-02-10 09:55:00