記一個低級的錯誤

現象

一個簡單的App,在測試機iPhone6S上正常運行,準備打包了。臨時發現需要iPhone5尺寸的應用截圖,就開了iPhone5的模擬器,準備運行應用來截圖。
結果發生了崩潰,一看崩潰堆棧,是訪問Model的某個屬性的時候崩潰了,報了訪問錯誤地址的異常。當時覺得很奇怪,以為是獲取回來的網絡數據出錯了,核對了一下,發現沒問題。
再仔細看了下崩潰時的Model,除了有兩個屬性不正常之外,其他的屬性值和類型都是正確的。下意識以為是那里內存寫溢出了,把這個Model給破壞了,就review了下代碼,發現沒啥問題。
再回過頭來細思一下,如果內存被覆寫了,那Model不應該就那兩個屬性有問題,而其他正常。翻看了下Model的定義,結果就發現問題所在了。
出問題的那兩個屬性是NSString *類型的,但是錯誤地使用了assign修飾,導致問題的產生,修改成正確的copy修飾之后,一切正常了。

總結

這個問題的產生是因為最初先根據網絡接口文檔定義好了Model,出問題的兩個屬性在文檔里說明是int類型的,只是調試的時候才發現文檔不正確,實際傳過來的是字符串。所以就把兩個屬性的類型改成了NSString *,但是忘記把修飾的assign改成copy了。一個粗心大意導致了這么個問題的出現。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 新建一個SQLiteDemo項目: 我們希望創建一個名為BookStore.db的數據庫, 然后在數據庫中新建一張...
    史慧君閱讀 7,588評論 2 53
  • 錦囊分享,我的前十天的冒險與收獲:通過面對面感招,使我的與人交流體驗了“飛"一樣的爽,告別了往日的尷尬,沒有話...
    真心愛禮閱讀 99評論 2 0
  • 文|珞寂朵 寫一紙書信,給你 小楷,藍黑的墨水 摘一片銀杏,送你 黃色,秋天的味道 日復一日,等你的回信 焦急,不...
    珞寂朵閱讀 254評論 29 25