[問題] Swift的selector遇到奇怪的bug
範例: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
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.163.221.141
※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1426142080.A.A1F.html
推
03/12 14:53, , 1F
03/12 14:53, 1F
推
03/12 14:56, , 2F
03/12 14:56, 2F
推
03/12 15:00, , 3F
03/12 15:00, 3F
剛才試了一下 有沒有加Selector() 和有沒有@objc一共4種組合都會Crash
※ 編輯: fishead1116 (211.21.229.247), 03/12/2015 15:09:12
推
03/12 15:18, , 4F
03/12 15:18, 4F
在Appdelegate出現
Thread 1: EXC_BAD_ACCESS(code=1
把enable zombie object 選項打開會出現
[(Project名稱).ViewController retain]: message sent to deallocated instance
※ 編輯: fishead1116 (211.21.229.247), 03/12/2015 15:25:32
→
03/12 15:42, , 5F
03/12 15:42, 5F
→
03/12 15:42, , 6F
03/12 15:42, 6F
你這麼一說我才發現如果開空Project的話無法重現= =""
我已經把viewDidLoad砍到剩那一行還是有問題,
class裡有幾個用storyboard拉的UILabel,UIButton,UIImageView
class有實作CBCentralManagerDelegate,CBPeripheralDelegate
不過那幾個方法完全沒使用到
※ 編輯: fishead1116 (211.21.229.247), 03/12/2015 16:00:37
BTW 同一個.swift檔案還有一個enum和一個struct
是說,Swift不是自動會dealloc的嗎?
※ 編輯: fishead1116 (211.21.229.247), 03/12/2015 16:03:10
→
03/12 16:51, , 7F
03/12 16:51, 7F
→
03/12 16:51, , 8F
03/12 16:51, 8F
還是一樣耶,我上傳我的範例
http://ppt.cc/fIRF
我是用模擬器iOS7.1 和iOS8.1 iPhone 5S 和iPhone 6跑的
※ 編輯: fishead1116 (211.21.229.247), 03/12/2015 17:02:11
推
03/12 17:13, , 9F
03/12 17:13, 9F
→
03/12 17:13, , 10F
03/12 17:13, 10F
※ 編輯: fishead1116 (118.163.221.141), 03/12/2015 17:24:53
推
03/13 18:12, , 11F
03/13 18:12, 11F
→
03/13 18:13, , 12F
03/13 18:13, 12F
→
03/13 18:14, , 13F
03/13 18:14, 13F
其實只要不要用init開頭就沒有問題 可能跟ViewController的某些方法相衝到了吧
推
03/13 20:33, , 14F
03/13 20:33, 14F
※ 編輯: fishead1116 (118.171.154.94), 03/13/2015 22:41:22
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章