私はtableView
のカスタムセルを作成しています。私は、迅速なファイル作っ:オプション付きカスタムUITableViewCell
import Foundation
import UIKit
class CellForPost: UITableViewCell {
@IBOutlet weak var postLikes: UILabel!
@IBOutlet weak var postText: UILabel!
@IBOutlet weak var postDate: UILabel!
@IBOutlet weak var postPhoto: UIImageView!
}
をし、デリゲートメソッドでそれを実装:ポストは、完全なコンテンツを持っているとき
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("postCell", forIndexPath: indexPath) as! CellForPost
cell.postPhoto.image = UIImage.init(data: (posts[indexPath.item].postPhoto)! as NSData)
cell.postText.text = posts[indexPath.item].postText
cell.postLikes.text = String(posts[indexPath.item].postLikes!)
cell.postDate.text = timestampToDate(posts[indexPath.item].postDate!)
return cell
}
すべてが素晴らしい作品が、例えばpost
ではオプションです写真はありません(存在しない場合に構造体)は、メッセージ
fatal error: unexpectedly found nil while unwrapping an Optional value
でクラッシュし、私はこのメッセージを理解し、私は
を作ってみました@IBOutlet weak var postPhoto: UIImageView?
はオプションの値ですが、動作しません。 'cosコンパイラはunwrapの値をセルに挿入する前に値を返すようにします。 P.P.それがゼロであり、行の高さを合わせるときに、imageView
を削除することについての短いアドバイスを与えることが可能ならば。
func tableView(tableView:cellForRowAtIndexPath indexPath:)はデータソースメソッドであり、デリゲートではありません。 – Andrej