Objective-C:使用其他文件中的方法

时间:2015-08-11 16:18:51

标签: objective-c file methods

我看过弹出此错误的所有其他人,我知道这是一个路径错误,是的我尝试退出并重新启动它,我检查了路径是否使用了最新文件,以及大多数人建议没有成功。我试图从TapViewController获取方法在JumpController中运行。我简化了我想要调用的方法,以便更容易找到问题,但仍然遇到问题。这是我到目前为止的相关代码:

TapViewController.h

-(void)hello;

TapViewController.m

-(void)hello {
    NSLog(@"Hello");
}

JumpController.h

#import <UIKit/UIKit.h>
#import 'TapViewController.h'

@property (strong, nonatomic) TapViewController *TapView;
@property (strong, nonatomic) JumpController *JumpControl;

JumpController.m

-(void)viewDidLoad {
     self.JumpControl = (TapViewController *)[UIApplication sharedApplication].delegate;
     self.TapView = [[TapViewController alloc] init];
     [self.JumpControl.TapView hello];
}

我从其他人所说的内容中抓取了大部分代码,所以我真的不知道其中一些代码是否无关紧要,或者是否一切都有助于这种情况。基本上,应用程序在加载陈述[AppDelegate TapView]: unrecognized selector sent to instance...时崩溃。如果我做错了或者我遗漏了相关代码,请告诉我!

更新:使用其他人所说的内容以及我自己的个人更改,问题似乎不仅与self.JumpControl = (TapViewController *)[UIApplication sharedApplication].delegate有关,而且与self.JumpControl整体有关。因为我在TapViewController *TapView文件中创建了.h,所以没有理由使用self.JumpControl,这会导致显示的视图顺序出现问题。我会将 almas 标记为正确,但我想澄清还需要做些什么。

1 个答案:

答案 0 :(得分:1)

您的问题在于:[AppDelegate TapView]: unrecognized selector sent to instance。您正在尝试将AppDelegate转换为TapViewController,这就是它崩溃的原因。 AppDelegate不是视图控制器。您的错误消息refs明确指出AppDelegate无法识别方法“TapView”,这是因为app delegate不是“TapViewController”的实例。

相关问题