XMLParserDelegate初始化問題

項目中需要根據不同情況給XMLParser指配不同的代理方法,因此我把代理方法分別寫成兩個遵循XMLParserDelegate協議的類(下面簡稱ParserDelegate)。然后我按照正常流程初始化,大致如下:

init(...) {
...
  self.parser = XMLParser(url: url)!
  let delegate = ParserDelegate()  //引起錯誤
  self.parser.delegate = delegate
  print(delegate)
  print(self.parser.delegate)
  super.init()
...
}

兩個print都能打印出正確的值,parser也不為空,但一旦執parser.parse()方法就會報EXC_BAD_ACCESS錯誤,這個錯大概是指針指向空對象引起的。最后我發現問題出在這句let delegate = ParserDelegate(),然后在我把這個代理作為此類的一個屬性后,問題解決。原因是初始化結束后這個代理被自動釋放了。

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

推薦閱讀更多精彩內容

  • 1、截取字符串”20 | http://www.baidu.com”中,”|”字符前面和后面的數據,分別輸出它們 ...
    強子ly閱讀 2,989評論 8 46
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,739評論 18 399
  • 2009.11.07 第一次寫這樣近乎肉麻的文字,但確實發自真心。 臨近高三,發現像這樣坐在教室里上課的日子已經不...
    小麥的穗Dodo閱讀 601評論 0 1
  • 用四天時間讀完完美健康,百年孤獨,瓦爾登湖,和穆斯林的葬禮。 這是這個月最大的收獲了。 劇本還在寫,大綱交了四個。...
    Wendyzhen閱讀 201評論 0 0