Ошибка ссылки на AudioToolbox в Задаче C - PullRequest
6 голосов
/ 26 марта 2009

Я получаю следующую ошибку в простом приложении Roulett, где я пытаюсь воспроизвести некоторые wav-файлы. Я не уверен, что означает ошибка, потому что в коде не отображаются флаги предупреждения, и я импортировал

Вот ошибка:

Неопределенные символы:
"_AudioServicesCreateSystemSoundID", ссылка от: - [CustomPickerViewController playWinSound] в CustomPickerViewController.o - [CustomPickerViewController spin:] в CustomPickerViewController.o "_AudioServicesPlaySystemSound", ссылка от: - [CustomPickerViewController playWinSound] в CustomPickerViewController.o - [CustomPickerViewController spin:] в CustomPickerViewController.o ld: символ (ы) не найдены collect2: ld возвращен 1 статус выхода
"_AudioServicesCreateSystemSoundID", ссылка от: - [CustomPickerViewController playWinSound] в CustomPickerViewController.o - [CustomPickerViewController spin:] в CustomPickerViewController.o "_AudioServicesPlaySystemSound", ссылка от: - [CustomPickerViewController playWinSound] в CustomPickerViewController.o - [CustomPickerViewController spin:] в CustomPickerViewController.o ld: символ (ы) не найдены collect2: ld возвращен 1 статус выхода

А вот и код:

#import "CustomPickerViewController.h"
#import <AudioToolbox/AudioToolbox.h>

@implementation CustomPickerViewController
@synthesize picker;
@synthesize winLabel;
@synthesize column1;
@synthesize column2;
@synthesize column3;
@synthesize column4;
@synthesize column5;
@synthesize button;

- (void)showButton
{
    button.hidden = NO;
}

-(void)playWinSound
{
    NSString *path = [[NSBundle mainBundle] pathForResource:@"win" ofType:@"wav"];
    SystemSoundID soundID;
    AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &soundID);
    AudioServicesPlaySystemSound (soundID);     
    winLabel.text = @"WIN!";
    [self performSelector:@selector(showButton) withObject:nil afterDelay:1.5];
}



-(IBAction)spin:(id)sender
{
    BOOL win = NO;
    int numInRow = 1;
    int lastVal = -1;
    for (int i = 0; i < 5; i++)
    {
        int newValue =random() % [self.column1 count];

        if (newValue == lastVal)
            numInRow++;
        else
            numInRow = 1;

        lastVal = newValue;
        [picker selectRow:newValue inComponent:i animated: YES];
        [picker reloadComponent:i];
        if (numInRow >= 3)
            win = YES;
    }

    button.hidden = YES;
    NSString *path = [[NSBundle mainBundle] pathForResource:@"crunch"ofType:@"wav"];
    SystemSoundID soundID;
    AudioServicesCreateSystemSoundID((CFURLRef) [NSURL fileURLWithPath:path], &soundID);
    AudioServicesPlaySystemSound(soundID);

    if (win)
        [self performSelector:@selector(playWinSound) withObject: nil afterDelay: .5];
    else 
        [self performSelector:@selector(showButton) withObject: nil afterDelay: .5];

    winLabel.text = @"";
}

1 Ответ

25 голосов
/ 26 марта 2009

Нашел это. Понял, что я не импортировал Framework AudioToolbox.Framework в XCode. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...