为什么我在尝试为我的 UITableView 获取 UILabel 时一直收到 "fatal error"?

Why do I keep receiving a "fatal error" when trying to fetch a UILabel for my UITableView?

我是一名编码初学者,但似乎陷入了僵局。我正在设置 UITableView 来显示用户的博客文章。我可以成功地从我的 Firestore 数据库中检索信息,但实际上无法将此信息填充到我的 UITableViewCell。我认为这取决于我的 'PostTableViewCell' 的设置方式。对此的任何答案将不胜感激。这是我拥有的:

主页视图控制器:

 var postArray: [String] = []
var documents: [DocumentSnapshot] = []

let db = Firestore.firestore()
let currentUserID = Auth.auth().currentUser?.uid

    // Find the UserIDs of people following
// Where Field for those UserIDs in "Posts"


override func viewDidLoad() {
    super.viewDidLoad()
    getFollowingPosts()
    configureTableView()
    }

func getFollowingPosts() {
    let searchForFollowing = db.collection("users").document(currentUserID!).collection("Following")
    searchForFollowing.getDocuments { (snapshot, error) in
        for documents in snapshot!.documents {
            let followedUID = documents.get("uid")
            print(followedUID!)
            
            self.db.collection("posts").whereField("uid", isEqualTo: followedUID!).getDocuments { (querySnapshot, error) in
                for documents in querySnapshot!.documents {
                    let uid = documents.get("uid") as! String
                    let title = documents.get("Title") as! String
                    let ProfilePictureURL = documents.get("ProfilePictureURL") as! String
                    let username = documents.get("username") as! String
                    let content = documents.get("Content") as! String
                    self.postArray.append(title)
                    print(self.postArray)
                }
                self.tableView.reloadData()
            }
        }
    }
    }

func configureTableView() {
    tableView.delegate = self
    tableView.dataSource = self
    tableView.register(PostTableViewCell.self, forCellReuseIdentifier: "PostCell")

    // remove separators for empty cells
    tableView.tableFooterView = UIView()
    // remove separators from cells
    tableView.separatorStyle = .none
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    postArray.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "PostCell", for: indexPath) as! PostTableViewCell
    let post = postArray[indexPath.row]
    **cell.titleLabel.text = post** //Error is encountered here
    return cell
}

PostTableViewCell:

class PostTableViewCell: UITableViewCell {

   
    @IBOutlet weak var usernameLabel: UILabel!
    
    @IBOutlet weak var titleLabel: UILabel!
    
    @IBOutlet weak var contentLabel: UILabel!
}

正如我在标题中所说,每当我尝试构建时,我总是收到“致命错误:在隐式展开可选值时意外发现 nil”,这让我相信我的 'PostTableViewCell' - 这一点在我的代码中用双星号标记。任何信息和答案将不胜感激。我是一个真正的初学者,渴望从这种停滞中取得进步。

  1. 从您的代码中删除以下语句:
    tableView.register(PostTableViewCell.self, forCellReuseIdentifier: "PostCell")
  1. 您在 PostTableViewCell 中缺少此函数:
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }