close

在 iOS 中常會因為不小心沒把物件的 reference count 管理好,然後存取到已經釋放掉的物件造成程式當掉,

這個問題對許多開發者來說應該都是件很困擾的事,不過其實我們可以動一些手腳,這樣在debug時就可以知道到底

是那個物件不小心被釋放掉而造成這個問題的,以下是設定的方式,當設定完成後,就可以在debug log中看到一些

提示訊息,告訴我們是怎麼回事了,

 

Product >> Manage Schemes >> 選取要debug的project >> Edit >> 選取 Run app名字.app

在 Argument 頁面中,新加一個 environment variables

NSZombieEnabled

將這個變數設成 true 就ok了。

之後如果程式掛掉了,只要比對一下錯誤訊息,例如:

 

app[13926:c203] *** -[CFString appendFormat:]: message sent to deallocated instance 0x53b1c20

和變數的狀況,例如:

 

 testString _NSZombie_CFString * 0x53b1c20

 

就可以知道發生什麼事情了。

arrow
arrow
    全站熱搜

    穿越時空的旅人 發表在 痞客邦 留言(0) 人氣()