dequeueReusableCellWithIdentifier
でインスタンス化した直後に、カスタムUITableViewCell
のコンセントにアクセスするのが保存されますか?`dequeueReusableCellWithIdentifier`の後にUITableViewCellとそのアウトレットが初期化されていますか?
など。
class MyCell: UITableViewCell {
@IBOutlet weak var myImageView: UIImageView!
var image: UIImage?
override func awakeFromNib() {
update()
}
func update() {
myImageView.image = image
}
}
class MyViewController: UIView() {
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("MyCellIdentifier") as! MyCell
cell.image = UIImage(...)
cell.update()
}
}
私はmyImageView.image = image
行目に指してクラッシュレポートを取得し、この実装をたくさん使用していないが、非常に稀に(< 0.001%)しています。
UPDATE: これまでのところクラッシュが唯一の彼らは同じクラスを共有するため、1口がカスタムセル内の多くのUIImageView()
にリンクされている一つの特定の実装のために観察されています。
これを指摘してくれてありがとう、私はコードを更新します。しかし、セルに対してnilを返すと、クラッシュは 'myImageView.image = image'の代わりに' cell.image = UIImage(...) '行で起こると思います。 – Manuel
私の悪い、プロパティは、オプションとして宣言され、誤植を修正しました。 – Manuel