我是一位C程序員,但不是客觀的c。我試圖通過在目標c中給他這段代碼來幫助我的朋友。順便說一句,這是一個iPhone應用程序。我有所有必要的基礎,正如你所看到的,已經聲明我的聲音爲soundA,使用 - (IBAction)方法...此外,聲音是一個簡單的.wav文件,不大於100 kb。從C代碼轉換爲ObjC
- (IBAction)soundA:(id)sender {
CFBundleRef mainBundle = CFBundleGetMainBundle();
CFURLRef soundFileURLRef;
soundFileURLRef = CFBundleCopyResourceURL(mainBundle,
(CFStringRef) @"soundA", CFSTR ("wav"), NULL);
UInt32 soundID;
AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
AudioServicesPlaySystemSound(soundID);
}
任何幫助,非常感謝!非常感謝。
- 怪人
問題是什麼? – 2012-02-19 22:50:22
ObjC是C的超集,所以C代碼也是ObjC代碼 – ouah 2012-02-19 22:55:37
'CFBundleCopyResourceURL'在名稱中有副本,因此會返回自己的內存。在你的代碼中,'soundFileURLRef'因此泄漏。與'soundID'關聯的內存同上,因爲'AudioServicesCreateSystemSoundID'是'創建'方法。 – Tommy 2012-02-19 23:18:33