質問: try Data(contentsOf: url!) return UIImage(data: data)! } catch let err { print("Error : \(err.localizedDescription)") } return UIImage() }
回答: > > cell.textLabel?.text = usersList[indexPath.row].username > > では、usernameを強制アンラップしていないのに > > > こちらについてですが、 `UILabel`のtextプロパティはオプショナル(`String?`)なのでアンラップする必要がありません。 > > let image:UIImage = getImageByUrl(url: usersList[indexPath.row].userImage!)ではなぜ強制アンラップしないといけないのかわかりません。 > > > `getImageByUrl`関数の定義を見ると引数はオプショナル(`String?`)ではない`String`となっています。なのでアンラップする必要があります。 今回強制アンラップして引数に値を渡していますが、`nil`を強制アンラップしようとした場合クラッシュします。以下のエラーはそれを表しています。 > > Fatal error: Unexpectedly found nil while unwrapping an Optional value > > > ひとまず強制アンラップではなく、 `if let`や`guard let`を使ってアンラップするようにすればエラーは消えると思います。 ``` func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) cell.textLabel?.text = usersList[indexPath.row].username // if let でアンラップする if let url = usersList[indexPath.row].userImage { let image:UIImage = getImageByUrl(url: url) cell.imageView?.image = image } else { // nilだったときの処理 } return cell } ```