-2

私はこのコードで助けが必要です、

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];

エラーメッセージは言う

リリースは利用できません: 自動参照カウント モードでは利用できません

ARC は明示的なメッセージ「リリース」を禁止します

*Objective-C ポインター型 'id' から C ポインター型 'CFURLRef' (別名 'const struct __CFURL ') へのキャストには、ブリッジ キャストが必要です。

4

2 に答える 2

2

このエラーは、ARCを使用する必要があるため、参照が自動的にカウントされるため、オブジェクトを解放する必要がないことを示しています。

あなたの場合、すべてをコメントまたは削除します

[OBJ release];

具体的には、削除する必要があります[soundfile release];

于 2013-03-17T09:11:15.357 に答える
0

プロジェクトで ARC (自動参照カウント) を使用しているため、オブジェクトを解放する必要はありません。

したがって、あなたは必要ありません[soundFile release];

ARC の詳細については、このApple ドキュメントを参照してください。

于 2013-03-17T09:23:40.003 に答える