我對Swift iOS開發相對比較陌生(我實際上有3年Java開發經驗,嘗試學習新技術)。我創建需要被稱爲SearchTextField庫的使用一個應用程序:iOS Swift EXC_BAD_ACCESS代碼2 SearchTextField(UITextField子類)
https://github.com/apasccon/SearchTextField
在shellnut,這是一個的UITextField子類,有一個下拉建議/自動完成功能。
下面是使用它的視圖控制器...
@IBOutlet var homeAddressTextField: SearchTextField!
@IBOutlet var workAddressTextField: SearchTextField!
override func viewDidLoad() {
super.viewDidLoad()
homeAddressTextField.delegate = self
workAddressTextField.delegate = self
homeAddressTextField.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)
workAddressTextField.addTarget(self, action: #selector(textFieldDidChange(_:)), for: .editingChanged)
//vvvvvvvvv EXC_BAD_ACCESS CODE 2 THROWN BELOW vvvvvvvv
homeAddressTextField.filterStrings(["foo","bar"])
}
homeAddressTextField
應該被實例化,否則任何提及它上面應該拋出同樣的異常。當突出顯示有問題的行時,homeAddressTextField是而不是無,並且正確顯示它是SearchTextField的實例。
我已經嘗試了很多事情來解決或至少找到錯誤的來源。正如你所看到的,我使用了一個強大的變量,而不是使用弱變量來表示Outlet。
我曾嘗試使用殭屍跟蹤任何嘗試訪問釋放的內存塊,但殭屍儀器沒有提出訪問殭屍。
如果值得注意,只要包含filterStrings()的有問題的行被移除,錯誤就會消失。任何幫助表示讚賞!
請問您可以在這裏發佈整個錯誤嗎? –
您使用ARC嗎? – Balasubramanian
@SivajeeBattina不知道你是什麼意思的「整個錯誤」,因爲這是我越來越...線程1:EXC_BAD_ACCESS(code = 2,address = 0x610000472680)'在問題指示的行上。每次運行時異常地址都會更改。 – darkterbears