Я посмотрел на всех других людей, у которых была эта ошибка, и я знаю, что это ошибка пути, и да, я попытался выйти и перезагрузить ее, я проверил пути использовали современные файлы, и большинство из них предлагали без успеха. Я пытаюсь получить методы от TapViewController для запуска в JumpController. Я упростил метод, который я хочу вызвать, чтобы облегчить поиск проблемы, но все же у меня проблемы. Вот соответствующий код, который я до сих пор:Objective-C: использование методов из других файлов
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...
. Дайте мне знать, если я что-то делаю неправильно, или если я упустил соответствующий код!
UPDATE: Используя то, что другие сказали, и из моих собственных личных изменений, Похоже, что проблема не только с self.JumpControl = (TapViewController *)[UIApplication sharedApplication].delegate
, но и с self.JumpControl
в целом. Поскольку я создал TapViewController *TapView
в файле .h
, нет причин использовать self.JumpControl
, что вызвало проблемы с порядком представлений, которые появились. Я буду отмечать almas как правильно, но я хотел уточнить, что еще нужно сделать.
Это не решит проблему. Но для начала вы можете переименовать все свойства, которые тоже начинаются с строчной буквы. 'self.jumpControl' –
- это TapViewController - подкласс UIApplicationDelegate? Я сомневаюсь. –
Когда вы устанавливаете 'self.jumpControl.tapView'? Насколько мы можем видеть, это скорее всего к тому моменту, когда вы вызываете привет на этом объекте. А в Obj-C вы можете отправлять сообщения (методы вызова) на nil. Попробуйте 'self.jumpControl setTapView (self.tapView)' перед вызовом или вызовом '[self.tapView hello]'. –