Swiftを使ったiOS開発では比較的新しいです(私は実際にJavaを使ってAndroid開発で3年間の経験を持ち、新しい技術を学ぼうとしています)。 shellnutでiOS Swift EXC_BAD_ACCESSコード2 SearchTextField(UITextFieldサブクラス)
https://github.com/apasccon/SearchTextField
、それはドロップダウンの提案/オートコンプリート機能を持つUITextFieldのサブクラスです:私はSearchTextFieldとして知られているライブラリの使用を必要とするアプリケーションを作成しています。以下は
は、それ以外の場合に任意の参照は上記と同じ例外をスローする必要があり、@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
がインスタンス化されなければならない...それを使用してのViewControllerです。問題のある行にブレークポイントを設定すると、homeAddressTextFieldはであり、それ以外の場合はではなく、SearchTextFieldのインスタンスであることが正しく示されます。
私は多くのことを修正したり、少なくともエラーの原因を見つけました。あなたが分かるように、私はアウトレットの弱いvarの代わりに強いvarを使用しました。
私はゾンビを使用して、割り当てられていないメモリブロックにアクセスしようとする試みを追跡しようとしましたが、ゾンビの機器はゾンビにアクセスしませんでした。
注意する必要がある場合は、問題のあるfilterStrings()を含む行が削除されるとすぐにエラーが消えます。どんな助けもありがとう!
ここでエラー全体を投稿できますか? –
ARCを使用していますか? – Balasubramanian
@SivajeeBattinaこれは私が得ているものなので、 "全体のエラー"が何を意味するか分かりません...質問によって示された行に 'スレッド1:EXC_BAD_ACCESS(コード= 2、アドレス= 0x610000472680)'実行のたびに例外のアドレスが変更されます。 – darkterbears