Метод не вызывается - PullRequest
       19

Метод не вызывается

1 голос
/ 22 февраля 2012

У меня есть довольно простой метод в классе в отдельном файле, который принимает целое число, ищет его в регистре выбора и возвращает указатель NSURL, который ему соответствует.У него есть такой метод:

#import <Foundation/Foundation.h>

@interface ChangeCurrentScene : NSObject
{
    NSString *filePath;
    NSURL *url;
    int currentScene;
}

- (NSURL *)changeSceneURL:(int)toDesiredScene;

@end

Я не уверен на 100%, как я должен вызывать его извне, но у меня есть кнопка, подключенная к моей раскадровке, которая определенно работает, и я 'используя эту строку, чтобы вызвать ее:

 nextURL = [sceneChanger changeSceneURL:1];

Из этого заголовочного файла:

@interface MSViewController : UIViewController <AVAudioPlayerDelegate> {

    BOOL userInputAvailable;
    int currentScene;
    NSURL *nextURL;
    ChangeCurrentScene *sceneChanger;

}

@property (strong) AVAudioPlayer *menuPlayer;
@property (strong, nonatomic) IBOutlet UILabel *userChoiceLabel;
@property (strong, nonatomic) IBOutlet UIImageView *nowPlayingIcon;


- (BOOL) playScene : (NSURL *)fileToBePlayed;

@end

Я установил точку останова в первой строке класса changeSceneURL: toDesiredScene, ноне называется вообще.Без сбоев, но и без звонков.Во-первых, это правильный способ использовать возврат из вызванного метода?nextURL является объектом NSURL, и я хочу, чтобы возвращаемое значение было сохранено в нем.Во-вторых, по какой причине этот метод вообще не вызывается?Я действительно в тупике, но я уверен, что это что-то ослепительно простое.

Спасибо, заранее!

1 Ответ

1 голос
/ 22 февраля 2012

Чеч, что sceneChanger не nil. Вы можете отправлять сообщения на nil, но метод не вызывается.

Редактировать Вы должны инициализировать sceneChanger где-то так:

sceneChanger = [[ChangeCurrentScene alloc] init];
...