2017-01-01 4 views
1

私はSwiftとiOSを使い慣れていて、URL文字列の配列を取得してImageViewをUITableViewCell MyTableViewCellと呼ばれる適切なクラスを作成しました。Swift 3でSDWebImageを使用してUITableViewCellでImageViewを正しく設定する方法

クラッシュだと私はエラーを取得しています:私は見ることができます

"fatal error: unexpectedly found nil while unwrapping an Optional value" 

は、のviewDidLoad()ラインimageTableView.datasource = self実行で起こっています。

私はそうとビューのデータと、デリゲートを設定しています:

以下
override func viewDidLoad() { 
    super.viewDidLoad() 
    imagesTableView.dataSource = self 
    imagesTableView.delegate = self 
} 

imageUrlsは、文字列の配列です。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

    let cell: MyTableViewCell = tableView.dequeueReusableCell(withIdentifier: "myTableViewCell", for: indexPath) as! MyTableViewCell 

    cell.imageView.sd_setImage(with: URL(string: imageUrls[indexPath.row])) 

    return cell 
} 

私はクラスでその様細胞への出口を持っている:

@IBOutlet var imagesTableView: UITableView! 

私の質問は、どのような迅速3とSDWebImageでこれを行うには適切な方法で、そしてなぜ/どこですimagesTableViewからのnil値は発生していますか?

また、問題ではないことを保証するために、一部の文字列URL値をimageUrlにハードコーディングしてみました(ハードコードされた値で同じエラーが発生する)。

+0

どのようにView Controllerを作成していますか?ストーリーボードから作成しないと、アウトレットは設定されません。また変数とプロパティは大文字小文字で始まります。 – Paulw11

+0

@ Paulw11名前付け規則のおかげで、ありがとうございました。私はストーリーボードからView Controllerを作成しています。テーブルビューコードを削除すると、ビューの残りの部分がエラーなく正常にロードされます – jeanmw

+0

コンセントを接続しましたか? – Paulw11

答えて

1

アウトレットが接続されていても、何とか参照が失われていることが判明しました。テーブルビュー全体とサブビューを削除して再作成して接続したため、エラーはなくなりました。私が前にコンセントのためにドラッグして落としたとき、何かファンキーなことが起きたに違いない。

関連する問題