如何在iOS中使用自定义表格视图单元格笔尖,并将滑动表格视图控制器用作该单元格的默认控制器

问题描述

我是一个初学者,我正在创建的iOS应用存在一些问题。我正在利用SwipeCellKit软件包为tableViews提供可滑动的单元格。我还想使用自定义单元格来显示生日。我创建了一个自定义的tableView单元格和笔尖。我遇到的问题是将笔尖正确编码到我的生日tableView控制器中,以便它将显示信息。下面是我的代码图片。如果有人能指出我正确的方向,我将不胜感激。

import UIKit
import RealmSwift
import UserNotifications

class BirthdayTableViewController: SwipeTableViewController {

@IBOutlet weak var name: UILabel!
@IBOutlet weak var birthdayLabel: UILabel!
@IBOutlet weak var age: UILabel!

let realm = try! Realm()

var birthdays: Results<Birthday>?
let dateFormatter = DateFormatter()



override func viewDidLoad() {
    super.viewDidLoad()


       
         tableView.register(BirthdayTableViewCell.nib(),forCellReuseIdentifier: BirthdayTableViewCell.identifier)
        
        tableView.rowHeight = 100
        tableView.separatorStyle = .none
    }
    
    override func viewWillAppear(_ animated: Bool) {
        loadBirthdays()
    }
    
    override func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }
    
    override func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
        return birthdays?.count ?? 1
    }
    
    override func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
        let cell = super.tableView(tableView,cellForRowAt: indexPath)
            
        
        guard let birthdayCell = (tableView.dequeueReusableCell(withIdentifier: "Cell",for: indexPath) as! BirthdayTableViewCell) else {fatalError()}

        let birthday = birthdays?[indexPath.row]
        
        let firstName = birthday?.firstName ?? ""
        let lastName = birthday?.lastName ?? ""
        name?.text = firstName + " " + lastName

        if let date = birthday?.birthdate as Date? {
            birthdayLabel?.text = dateFormatter.string(from: date)
        } else {
            birthdayLabel.text = " "
        }
        
        return cell
        
    }

[Beginning of Code][1]
[TableView Methods][2]


  [1]: https://i.stack.imgur.com/fZspG.png
  [2]: https://i.stack.imgur.com/9IlD1.png

解决方法

该应用因投放结果而崩溃

tableView.dequeueReusableCell(withIdentifier:for:)

强行打开as!会返回非可选对象。

要解决该错误,只需将其更改为as?

还有另一件事也可能导致错误,您键入了单元格的直接标识符,而不是使用标识符BirthdayTableViewCell.identifier

guard let birthdayCell = (tableView.dequeueReusableCell(withIdentifier: BirthdayTableViewCell.identifier,for: indexPath) as? BirthdayTableViewCell) else {fatalError()}