→ yuanruo: 出了scope 被release 不過你在哪邊print的? 07/13 18:23
→ illen: 我是在 func notePressed裡,player的下一行print的 07/13 18:32
→ illen: y大的意思是出了func notePressed{}的cope後player被釋放? 07/13 19:49
→ illen: 但照自己的想法,應該也會播放完聲音檔後才被釋放才對 07/13 19:50
→ illen: 不知道自己是哪邊想錯了,上面推文是指宣告在註釋裡的情況 07/13 19:51
→ yuanruo: 照理講你print在player下面應該會有instance 07/13 20:25
→ yuanruo: 但是出了這個IBAction後player被release 所以聲音會中止 07/13 20:26
→ yuanruo: 等於你創建完馬上就被release 所以根本聽不到聲音 07/13 20:26
→ tkdmaf: 基本上,定義在func外的叫做屬性,而不是變數。 07/13 21:42
→ tkdmaf: 應該說,在class內但func外的是屬性,class外就變全域 07/13 21:43
→ tkdmaf: 通常為了正確區分,不建議屬性直接用名稱來做。 07/13 21:44
→ tkdmaf: 而是加上self變成self.xxx來明定這是物件的屬性。 07/13 21:44
→ illen: 我似乎懂了,雖然我在IBAction裡面var player,但是在按下 07/14 12:26
→ illen: 按鈕後,雖然有創建成功,但是跳出IBAction的scope後被釋放 07/14 12:28
→ illen: 而照原本正確的寫法,按下按鈕跳出IBAction後,播放聲音 07/14 12:31
→ illen: 的值會傳給寫在class內的屬性player,並成功播放出來 07/14 12:32
→ illen: 謝謝兩位大大的指點! 07/14 12:33