很多类似的问题,但没有一个解决方案适用于我的情况。


我尝试编写一个简单的FlipSideApp。 只有两个视图,每个视图只有一个按钮(flipBtn | flopBtn),以反过来呈现另一个视图。 flip第一个视图工作正常。 另一视角的flop导致
unrecognized selector sent to instance 0x6c3adf0

调用[self dismissViewControllerAnimated:YES completion:nil];后,应用程序崩溃[self dismissViewControllerAnimated:YES completion:nil]; 在文件FlipSide.m中 (请参见下面的代码)。 其中0x6c3adf0self的当前地址,它是FlipSide : UIViewController一个实例FlipSide : UIViewController在这种情况下是FlipSide : UIViewController

所以我认为错误消息中提到的无法识别的选择器是dismissViewControllerAnimated:completion -method。
键入Xcode的CodeSense时,“建议”该方法。

根据UIViewController类参考,此方法在iOS 5.0 SDK中是已知的。
我的部署目标是5.0,设备iPhone,基础SDK iOS 5.0,架构标准(arm7)。

使用为所有异常设置的符号断点,调试器在main函数中停止在UIApplicationMain。 这没什么给我提示。
Zombie-Objects已启用。 即使我认为内存泄漏不是这里的问题。

我能做什么才能识别选择器?



文件:“ AppDelegate.m

#import "FirstViewController.h"

- (BOOL)application:(UIApplication *)application  
                  didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

self.window = [[[UIWindow alloc]  
                      initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

// Override point for customization after application launch.
UIViewController *viewController1 = [[[FirstViewController alloc]  
                 initWithNibName:@"FirstViewController" bundle:nil] autorelease];

self.window.rootViewController = viewController1;
[self.window makeKeyAndVisible];
return YES;
}




文件:“ FirstViewController.h

@interface FirstViewController : UIViewController

- (IBAction)flipBtn:(id)sender;

@end


文件:“ FirstViewController.m

…
- (IBAction)flipBtn:(id)sender {

NSLog(@"%s -- reached --", __PRETTY_FUNCTION__);

FlipSide* flipSide = [[FlipSide alloc] initWithNibName:@"FLipSide" bundle:nil];
[self presentViewController:flipSide animated:YES completion:nil];    

NSLog(@"%s -- done --", __PRETTY_FUNCTION__);
}




文件:“ FlipSide.h

@interface FlipSide : UIViewController 

- (IBAction)flopBtn:(id)sender;

@end


文件:“ FlipSide.m

#import "FlipSide.h"

- (IBAction)flopBtn:(id)sender {

NSLog(@"%s -- reached --", __PRETTY_FUNCTION__);

NSLog(@"self address is: %@", self);

//  //  //      ??? unrecognized selector sent to instance ???
[self dismissViewControllerAnimated:YES completion:nil]; //  <--

NSLog(@"%s -- done --", __PRETTY_FUNCTION__);
}




控制台 OutPut是:

-[FirstViewController flipBtn:] -- reached --
-[FirstViewController flipBtn:] -- done --
-[FLipSide flopBtn:] -- reached --
self address is: <FLipSide 0x6c3adf0>
-[FLipSide flopBtn:] -- done --
-[FLipSide flopBtn:]: unrecognized selector sent to instance 0x6c3adf0 

===============>>#1 票数:3 已采纳

我自己得到了解决方案

知道它的错误信息是有道理的:
答案在于使用过的XIB文件。

经验法则:
通过右键单击“ctrl”+点击它们所有发送的事件都连接到现有方法来检查InterfaceBuilder中的GUI元素!

如果不是这种情况,
instance表示GUI元素被sent
unrecognized selector是指在InterfaceBuilder中连接到它的非现有方法。 ;-)

请注意,一个事件可以连接到多个方法。 如果即使其中一个未定义(任何更长时间),您也会收到该错误。 如果您手动删除,重命名或更改方法的签名,请记住这一点。 以前建立的连接可能仍然存在。

  ask by noone translate from so

未解决问题?本站智能推荐:

2回复

performSegueWithIdentifier中的“无法识别的选择器发送到实例”

所以我在View Controller中有一个以编程方式添加的按钮。 因此我直接从我的根View Controller创建了一个push segue到下一个。 已经嵌入了导航控制器。 这是我设置按钮并添加目标; 这就是pushRegisterScreen; 但这引发了这
1回复

如果监视器已连接,则dismissViewControllerAnimated无法正常工作

我有主视图控制器,并使用以下代码显示下一个视图并关闭该视图。如果未连接外部监视器,它们将正常工作。 如果已连接,尽管可以显示该视图控制器,但我无法将其关闭。 我该怎么办? 这用于外部监视器视图。
1回复

dismissViewControllerAnimated导致黑屏ios目标c

所以在我的应用程序中,我在视图控制器导航之间得到了空白屏幕。 我认为dismissViewControllerAnimated是罪魁祸首。 所以在一个地方我改变了下面的代码 - 使用以下代码 - vc在哪里 - 它奏效了。 但在我的应用程序的其他部分,我有如下
2回复

有没有办法查看当前的UIViewController是否从另一个UIViewController的解雇中出现

我的问题是,我有一个主UIViewController允许通过它显示其他三个UIViewController,但是我想知道是否有一种方法,一旦我解散了其他三个控制器之一,是否可以通知主UIViewController或告诉它由于解雇了该控制器而现在出现? 谢谢高级!
3回复

如何关闭UIVIewController?

我有一个MainWindowController,我想关闭“触摸内部”按钮事件并打开一个新的UIView。 我使用的代码是这样的: 但是通过这种方式,MainWindowController不会自行关闭它。
4回复

在dismissViewController之后的presentViewController时为空白

我有一个A viewController,首先,我展示了B viewController,完成一些工作后,我需要关闭B viewController并展示C C viewController,所以我在A viewController中使用以下代码: 它有效,但是我遇到了一个问题,当关闭B
1回复

谁应该是解雇视图控制器的人?

我想问一下谁应该解雇一个呈现的视图控制器? 让我说我提出了一个视图控制器,并在该视图控制器的IBAction上,我想解雇它。 我是否应该通过创建委托方法将该责任传递给呈现视图控制器,或者我应该只是调用dismissViewController:animated:on,无论如何要求其呈现的
3回复

在关闭控制器时将值传递给父控制器

我想将数据发送到parentviewcontroller,但以下代码崩溃。 给我解决方案 这里,Post是我调用presentViewController:animated:completion的控制器名称presentViewController:animated:completio
2回复

取消视图后执行的功能无法正常运行

我正在开发一个iPhone应用程序,该程序需要用户输入代码。 我有一个第一个viewController,当用户使用->触摸按钮时,它将调用我的passwordPrompt视图控制器 密码提示符显示得很好,我可以输入密码,然后单击确定时,使用->关闭passwordProm
2回复

无法识别的选择器已发送到UIViewController(或协议)的实例?

我是iOS开发人员的新手,在尝试嵌入开源车轮旋转项目( https://github.com/funkyboy/How-To-Create-a-Rotating-Wheel-Control时 ,我遇到了这个问题-with-UIKit )放入我的。 基本上,我从这个开源项目中复制了相关的代码