gpt4 book ai didi

objective-c - 为什么我得到 "unrecognized selector sent to instance"?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:08:20 25 4
gpt4 key购买 nike

我在 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>

最佳答案

这是因为 self.window.rootViewController 不是 UINavigationController 它可能很简单 UIViewcontroller


根据日志编辑
将您的方法更改为

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
birdwatchingViewController *firstViewController = (birdwatchingViewController *)self.window.rootViewController;

BirdSightingDataController *aDataController = [[BirdSightingDataController alloc] init];
firstViewController.dataController = aDataController;

return YES;
}

关于objective-c - 为什么我得到 "unrecognized selector sent to instance"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9225539/

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