UITableViews
の2つのSwift(2.2)iOSアプリ(私の最初のもの)があります。ビューの1つは、プログラムの存続期間中に追加/削除される支払いを一覧表示します。Swift iOS、UITableViewなし
これはすべて99%の時間で正常に動作しますが、が数回発生しました。突然すべてがUITableView
になりません。
IBOutlet
は、正しく接続されている必要があります。まったく機能しません。
IBOutlet
変数にどこにでも(単にメソッドを呼び出す)割り当てられていないときに、この原因が考えられますか?
か(私は原因を見つけることができない場合)、最高取り扱い上のアドバイスそれが起こる(私はそれを再作成する必要がある場合、どのようなautolayout
、events
、outlets
について、など?)
@IBOutlet weak var paymentTableView: UITableView!
func handlePayment(payment: PaymentRecord) -> Void {
let existingPaymentIndex = payments.indexOf({ $0.payNo == payment.payNo })
if (existingPaymentIndex != nil) {
payments.removeAtIndex(existingPaymentIndex!)
}
if (self.paymentTableView == nil) { // Here is where I notice the issue
Log.error?.message("handlePayment: paymentTableView is nil!!")
return
}
dispatch_async(dispatch_get_main_queue(), {() -> Void in
self.paymentTableView.reloadData()
})
}
理由を説明するのを邪魔することなくダウン投票している人を愛しているのです... –
私はダウン投票しませんでしたが、それはあなたがスタックトレースを提供していないか、または 'handlePayment 'が呼び出されます。表示されたコードセグメントは、nilをチェックし、おそらくエラーを記録する場所を示しますが、 'paymentTableView'は弱いので、基になるテーブルビューが解放されると、いつでもゼロになることがあります。ブレークポイントを設定し、tableviewがnilであるときに 'handlePayment'がどこから呼び出されたかを決定し、ビューコントローラへの参照を取得した方法とtableviewがnilでない理由を調べます。ビューコントローラはちょうど割り当てられただけでしたか、それとも単に削除されましたか? – Paulw11
@paulw handlePaymentは、Webサービスコール(iPadはWebサーバーを実行します)を介してPOSステーションから呼び出されます。それは多くと呼ばれ、それは時間の99%を働いています。私はデバッガを接続して再現できませんでしたが、展開されたバージョンで数回発生しました。 View Controllerへの参照ですか?このメソッドはView Controller上にあり、発生したときにはアクティブView Controllerです。これは唯一のアプリです。何が原因でテーブルビューが解放されるのですか? –