gpt4 book ai didi

swift - 由于未捕获的异常 'NSUnknownKeyException' 终止应用程序,原因 : '[ setValue:forUndefinedKey:

转载 作者:行者123 更新时间:2023-11-28 15:44:54 24 4
gpt4 key购买 nike

我正在开发一个 iOS 应用程序,而且我还是个新手。我一直在关注“让我们构建那个应用程序”以大致了解 Swift。目前遇到了一个问题,无法像其他人一样解决这个问题。

2017-04-06 16:32:17.968 GameOfChats[7679:602767] 
*** Terminating app due to uncaught exception 'NSUnknownKeyException',
reason: '[<GameOfChats.Message 0x6080000f4580> setValue:forUndefinedKey:]:
this class is not key value coding-compliant for the key text:.

我知道这与未分配的内容有关。但我无法弄清楚它是如何关联的。我没有使用 Storyboard拖放方法。我已经对其进行了硬编码,因为这显然使组织更容易。任何帮助将不胜感激!

class MessagesController: UITableViewController {

override func viewDidLoad() {
super.viewDidLoad()

navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Logout", style: .Plain, target: self, action: #selector(handleLogout))

let image = UIImage(named: "Message-50")
navigationItem.rightBarButtonItem = UIBarButtonItem(image: image, style: .Plain, target: self, action: #selector(handleNewMessage))

checkIfUserIsLoggedIn()

observeMessages()
}

var messages = [Message]()

func observeMessages() {
let ref = FIRDatabase.database().reference().child("messages")
ref.observeEventType(.ChildAdded, withBlock: { (snapshot) in

if let dictionary = snapshot.value as? [String: AnyObject] {
let message = Message()
message.setValuesForKeysWithDictionary(dictionary)
self.messages.append(message)

dispatch_async(dispatch_get_main_queue(), {
self.tableView.reloadData()
})
}


}, withCancelBlock: nil)

}

// puts text in front page, would show people u have messaged

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return messages.count
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = UITableViewCell(style:.Subtitle, reuseIdentifier: "cellId")

let message = messages[indexPath.row]
cell.textLabel?.text = message.toId
cell.detailTextLabel?.text = message.text
return cell
}

//handles new message action request
func handleNewMessage() {
let newMessageController = NewMessageController()
newMessageController.messagesController = self
let navController = UINavigationController(rootViewController: newMessageController)
presentViewController(navController, animated: true, completion: nil)
}

最佳答案

cell.detailTextLabel?.text = message.text

错误在这行代码中确保消息包含子类文本背后原因:编译器无法在消息中找到这样的 key

关于swift - 由于未捕获的异常 'NSUnknownKeyException' 终止应用程序,原因 : '[<GameOfChats. 消息 0x6080000f4580> setValue:forUndefinedKey:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43259826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com