2011-03-30 40 views
0

這是我的按鈕的標題。當我觸摸特定按鈕時,我的應用程序崩潰

IBOutlet UIButton *buttonOneOne; 

} 

- (IBAction)buttonOneOne:(id)sender; 

@property (nonatomic, retain) IBOutlet UIButton  *buttonOneOne; 

這就是我把我的.m文件爲它

- (IBAction)buttonOneOne:(id)sender { 

    NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"95" ofType:@".wav"]; 

NSError *activationError = nil; 
NSError *audioPlayerInitError = nil; 
[[AVAudioSession sharedInstance] setActive: YES error:&activationError]; 

NSURL *newURL = [NSURL fileURLWithPath:soundFilePath]; 
AVAudioPlayer *musicPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:newURL error:&audioPlayerInitError]; 

[musicPlayer prepareToPlay]; 
[musicPlayer setVolume:.8]; 
[musicPlayer setNumberOfLoops:-1]; // -1 means play indefintely 
[musicPlayer setDelegate: self]; 
[musicPlayer play]; 

} 

爲什麼會崩潰?

+0

爲什麼@屬性(非原子,保留)IBOutlet中的UIButton * buttonOneOne; ?你可以在你的IBAction實現文件中放置斷點嗎?還可以在這裏發佈一些崩潰日誌。 – 0x8badf00d 2011-03-30 20:37:54

+0

你應該使用代碼格式選項使代碼更具可讀性 – 2011-03-30 20:38:32

+0

我把屬性放在那裏,因爲蘋果在他們的示例代碼中使用了它,但我並沒有完全理解爲什麼它在那裏,是的,讓我這樣做 – luca590 2011-03-30 20:39:53

回答

1

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:]: nil string parameter'表示找不到您正在引用的文件。

指定文件擴展名時,不應使用點。

變化ofType:@".wav"
ofType:@"wav"

NSBundle Class Reference

+0

謝謝!它的作品,我很開心:)哈哈。我想要考慮NSURL,爲什麼AVAudioPlayer似乎沒有考慮到它。謝謝 – luca590 2011-03-30 21:15:33

0

你應該發佈一些控制檯輸出(可能是一個堆棧跟蹤),它會幫助我們更多。

崩潰,我可以從這個代碼中看到可能的原因:

  1. 你有沒有decalring它的@propertysynthesize你的按鈕?

  2. 95.wav是否存在於您的Xcode項目中(您是否導入了它)?

  3. 您使用Interface Builder嗎?如果是這樣,請檢查你的IB項目是否有舊的IBOutlets和IBActions,因爲一旦你重命名了一個函數或者什麼東西,你一定會得到指向舊代碼的界面元素。

+0

是的1和2,我會做第三次,讓我繼續前進,並在堆棧跟蹤,對不起,我沒有發佈之前 – luca590 2011-03-30 20:41:58

+0

這個GDB被配置爲「x86_64蘋果達爾文」.sharedlibrary apply-load-rules全部 附加到進程32811. 2011-03-30 16:51:37.779 DubStep [32811:207]由於未捕獲的異常'NSInvalidArgumentException',原因:'*** - [NSURL initFileURLWithPath:]:零字符串參數'終止應用程序 2011-03-30 16:51:37.781 DubStep [32811:207] Stack:( ) – luca590 2011-03-30 20:53:49

+0

kill Error resett ing ObjC調試器模式:被調試的程序在從GDB調用的函數中發出信號。 GDB已將上下文恢復到調用之前的狀態。 要更改此行爲,請使用「set unwindonsignal off」 對包含函數(gdb_objc_endDebuggerMode)的表達式的評估將被廢棄(gdb) – luca590 2011-03-30 20:55:04

相關問題