gpt4 book ai didi

ios - 应用程序崩溃,错误无法识别的选择器发送到实例

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

我有一个无法识别的选择器发送到实例问题。我知道哪条线有问题,但我不明白为什么它不能识别它。 (我在创建容器 View 时测试了这段代码,它工作得很好。但由于某种原因,当我将它合并到我的主项目时,我收到了这个错误。)

这是我的控制台输出:

2013-12-20 16:47:59.633[8545:70b] -[UIViewController decideViewController:]: unrecognized selector sent to instance 0x8b5c250
2013-12-20 16:47:59.659[8545:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController decideViewController:]: unrecognized selector sent to instance 0x8b5c250'
*** First throw call stack:
(
0 CoreFoundation 0x01c075e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x0198a8b6 objc_exception_throw + 44
2 CoreFoundation 0x01ca4903 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3 CoreFoundation 0x01bf790b ___forwarding___ + 1019
4 CoreFoundation 0x01bf74ee _CF_forwarding_prep_0 + 14
5 TProduct 0x0000566f -[GameViewController changeViews:] + 143
6 TProduct 0x00005404 -[GameViewController timerTick:] + 532
7 Foundation 0x015c1927 __NSFireTimer + 97
8 CoreFoundation 0x01bc5bd6 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 22
9 CoreFoundation 0x01bc55bd __CFRunLoopDoTimer + 1181
10 CoreFoundation 0x01bad628 __CFRunLoopRun + 1816
11 CoreFoundation 0x01bacac3 CFRunLoopRunSpecific + 467
12 CoreFoundation 0x01bac8db CFRunLoopRunInMode + 123
13 GraphicsServices 0x0387b9e2 GSEventRunModal + 192
14 GraphicsServices 0x0387b809 GSEventRun + 104
15 UIKit 0x006f8d3b UIApplicationMain + 1225
16 TProduct 0x000070fd main + 141
17 libdyld.dylib 0x0224570d start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

这是它无法识别的部分GameViewController.m

-(void)changeViews:(NSString *)gameStateSegueIdentifier
{
NSLog(@"show view gameStateSegueIdentifier :%@",gameStateSegueIdentifier);
[self.containerController decideViewController:gameStateSegueIdentifier];
}

这是我调用的方法ContainerViewController.m

-(void)decideViewController:(NSString *)gameStateSegueIdentifier
{
if (gameStateSegueIdentifier == _currentSegueIdentifier) {
return;
}

while (gameStateSegueIdentifier != _currentSegueIdentifier) {
NSLog(@"this is the gameStateSegueIdentifier %@",gameStateSegueIdentifier);
NSLog(@"this is the currentSegueIdentifier %@",_currentSegueIdentifier);

[self changeViewControllers];
}
}

我知道已经有很多“无法识别的选择器发送到实例”的问题。但到目前为止,我无法为我的案例找到答案。感谢您的帮助。

最佳答案

您收到的错误消息解释了问题:

2013-12-20 16:47:59.633[8545:70b] -[UIViewController decideViewController:]: unrecognized selector sent to instance 0x8b5c250

这告诉您 UIViewController 类的实例收到消息 decideViewController:。 UIViewController 不响应此消息。所以,看起来 self.containerController 是一个 UIViewController 而不是 ContainerViewController。 (如果它是一个 ContainerViewController,它会在错误消息中这样说。)

该属性被声明为 ContainerViewController 的事实并不意味着其中实际上有一个 ContainerViewController。转到实际创建此对象的位置并将其分配给该属性,并确保将其创建为正确的类。

关于ios - 应用程序崩溃,错误无法识别的选择器发送到实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20714281/

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