[問題] 在寫swift的時候出現thread 1

看板MacDev作者 (阿布揪)時間7年前 (2017/06/08 01:07), 編輯推噓2(2011)
留言13則, 3人參與, 最新討論串1/1
小弟我最近剛學swift 在學到用UIView建立一個藍色區域後 http://i.imgur.com/swlgfhm.jpg
要重新設定這個區域的位置和大小 http://i.imgur.com/YWzneoy.jpg
可是不管我用書上的哪種方法 在執行之後都會出現如下所示的thread 1 http://i.imgur.com/WAMuJgD.jpg
請問該如何解決呢? 還是我有哪裡做錯了? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.40.197.80 ※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1496855246.A.653.html

06/08 01:37, , 1F
你要看的錯誤訊息是右下角顯示的那一行
06/08 01:37, 1F

06/08 01:37, , 2F
意思是有一個變數的值是nil
06/08 01:37, 2F

06/08 01:39, , 3F
但是你卻把它拿去用了
06/08 01:39, 3F

06/08 01:41, , 4F
你的blueView 宣告了兩次
06/08 01:41, 4F

06/08 03:44, , 5F
應該說你在didload是宣告一個blueView 然後就把這個
06/08 03:44, 5F

06/08 03:45, , 6F
blueView用addSubView放到view裡面了
06/08 03:45, 6F

06/08 03:45, , 7F
然後你在viewDidAppear的時候使用的這個blueView 並沒
06/08 03:45, 7F

06/08 03:46, , 8F
有初始化,又剛好你在宣告他的時候optional是給! 所以
06/08 03:46, 8F

06/08 03:46, , 9F
xcode沒有去提醒你說 這個物件有可能是nil所以你編譯OK
06/08 03:46, 9F

06/08 03:47, , 10F
真正執行的時候blueView是nil就無法塞frame給他
06/08 03:47, 10F

06/08 03:47, , 11F
要改很簡單 你只要把viewDidLoad的那個 let blueView =
06/08 03:47, 11F

06/08 03:48, , 12F
這個let拿掉 你就正常可以跑了
06/08 03:48, 12F

06/08 10:05, , 13F
非常感謝!
06/08 10:05, 13F
文章代碼(AID): #1PE3BEPJ (MacDev)