2013-03-17 2 views
-2

мне нужна помощь в этом коде,Objective-C Воспроизведение звука на iPhone

Я пытаюсь играть звуки при нажатии кнопки на приложение iPhone, и я получаю эту ошибку. Вот код

-(IBAction)playSound:(id)sender{ 
    // NSLog(@"play Sound"); 
    SystemSoundID soundID; 
    NSString *buttonName = [sender currentTitle]; 
    NSString *soundFile = [[NSBundle mainBundle] 
          pathForResource:buttonName ofType:@"wav"]; 
    AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:soundFile], &soundID); 
    AudioServicesPlaySystemSound(soundID); 
    [soundFile release]; 

Сообщения об ошибках говорят

Релиз unavialable: не доступен в режиме автоматического подсчета ссылок на

ARC запрещает явное сообщение 'освобождение'

* Тип указателя Objective-C 'id' для типа указателя C «CFURLRef» (он же «Const структура __CFURL ») требует мостиком отливать

+2

Вы используете ARC, просто удалить [релиз SoundFile]; –

+0

Как насчет NSBeep()? – Itachi

ответ

2

Эта ошибка говорит, что вы должны использовать ARC так что вам не нужно освободить любой объект, поскольку он автоматически рассчитывает свою ссылку.

В вашем случае, комментарий или удалить все

[OBJ release]; 

В частности, вам нужно удалить [soundfile release];

+0

Я внесла изменения и удалил [Soundfile release]; но все еще придумывает эту ** Ошибка ** * Приведение типа указателя Objective-C 'id' к типу C-указателя 'CFURLRef' (aka 'const struct __CFURL') требует мостового перехода * Что не так с этой строкой кода ? 'AudioServicesCreateSystemSoundID ((CFURLRef) [NSURL fileURLWithPath: soundFile], & soundID);' –

+0

@ TeddyAble- http://stackoverflow.com/questions/11703923/cfurlref-requires-a-bridged-cast-error Этот вопрос полезен в вашем случай ... удачи :) – iPatel

+0

http://stackoverflow.com/questions/15014887/cast-nsurl-to-cfurlref – iPatel

0

Как вы используете ARC (Автоматический подсчет ссылок) в вашем проекте вы не должны выпускать любой объекты, поскольку компилятор заботится, если он для вас.

Поэтому вам не нужно [soundFile release];

Посмотрите на эту apple document для получения дополнительной информации о ARC

+0

см. мой комментарий Выше, если вы можете помочь, было бы очень благодарно. –

Смежные вопросы