2012-10-04 31 views
3

我試圖使用此iOS - 成員引用是一個指針?

NSURL *soundURL = [[NSBundle mainBundle] URLForResource:@"error" 
              withExtension:@"aiff"]; 
AVAudioPlayer *avSound = [[AVAudioPlayer alloc] 
      initWithContentsOfURL:soundURL error:nil]; 
self.soundError = avSound; 

我在最後一行接收一個錯誤說分配一個AVAudioPlayer到一個屬性:構件引用類型「結構objc_class *」是一個指針;也許你的意思是使用' - >'?

屬性聲明如下

@property (nonatomic, strong) AVAudioPlayer *soundError; 

指針?我不明白。

感謝

+0

'AVAudioPlayer * soundError;'< - 所以它是一個指針。 – 2012-10-04 09:54:45

+0

avSound總是一個點,所以?這是什麼解決方案? – SpaceDog

回答

16

你沒有發佈完整的方法,但該錯誤可能表明你想在類方法分配財產,而不是一個實例方法。

檢查你的方法聲明是正確的 - 或許它應該是

- (void) someMethod 

,而不是

+ (void) someMethod 
+0

啊,對不起。感謝您指出了這一點。問題解決了! – SpaceDog

+0

@RubberDuck,如果你真的需要這種方法是類方法,並使所有實例之間共享soundError,你可以在該文件中使soundError全局(可能是靜態)變量。或者你可以使用你的班級作爲單身人士,如果這適合你的應用程序設計 – Vladimir

+0

謝謝,這正是我在做什麼後,你指出了問題... – SpaceDog

0

要使用你所需要的getter/setter方法點符號。 如果你不提供自己的方法,使用

@synthesize soundError; 

否則,使用self->soundError設置伊娃。