Re: [閒聊] Swift的selector遇到奇怪的bug

看板MacDev作者 (菜脯)時間9年前 (2015/03/21 16:50), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/1
※ 引述《fishead1116 (DD魚)》之銘言: : 範例:http://ppt.cc/fIRF : override func viewDidLoad(){ : var timer = NSTimer.scheduledTimerWithTimeInterval(3, target: self, : selector:"initFoo",userInfo : nil,repeats: false) : } : func initFoo(){ : println("initFoo") : } : 這段程式執行的時候會導致ViewController Crash掉... : 但是如果直接在viewDidLoad裡面執行initFoo()就正常 : 如果selector 和func 都改成initfoo (全小寫)也是正常 : 不太確定為啥會有這種BUG ,以後還是別拿保留字當函式名稱一部分了.. : PS 用的是XCode 6.1 這應該是方法名稱問題 在objc裡的方法不能使用init開頭的名稱 Swift沒有這個限制,但是給objc呼叫的話會當掉 我是用一個objc的class去呼叫swift class的物件方法驗證的 Swift的initFoo可以成功被呼叫,但在不久後會當掉 所以雖然swift沒有這個命名限制,但是還是不要這樣取囉 畢竟到處都是objc ----- Sent from JPTT on my HTC One 801e. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.75.72.124 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1426927857.A.F3A.html

03/26 08:32, , 1F
感謝解答
03/26 08:32, 1F
文章代碼(AID): #1L3J3nyw (MacDev)