gpt4 book ai didi

swift - 使用 TableviewController 时崩溃

转载 作者:行者123 更新时间:2023-11-28 12:41:35 24 4
gpt4 key购买 nike

我正在尝试使用 TableViewController,但这让我很抓狂,因为我真的不明白我的代码在一个项目中崩溃了,但在另一个项目中却没有。

相同的代码(复制粘贴)到不同的 XCode 项目运行成功。

这是我的代码:

import UIKit
class ViewController: UITableViewController {
var listeDeListes = [AnyObject]()
override func viewDidLoad() {
super.viewDidLoad()

self.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Add, target: self, action: #selector(ViewController.addItem))

if (NSUserdefault.standartDefault.objectForKey("identity") != nil) {
listeDeListes = NSUserDefaults.standardUserDefaults().arrayForKey("identity")!
}
}

func addItem() {

let alertController = UIAlertController(title: "New Resolution", message: "", preferredStyle: UIAlertControllerStyle.Alert)
let confirmAction = UIAlertAction(title: "Confirm", style: UIAlertActionStyle.Default, handler: ({
(_) in

if let field = alertController.textFields![0] as? UITextField {

self.saveItem(field.text!)
self.tableView.reloadData()
}
}))

let cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: nil)
alertController.addTextFieldWithConfigurationHandler ({
(textField) in

textField.placeholder = "Type smothing..."

})

alertController.addAction(confirmAction)
alertController.addAction(cancelAction)

self.presentViewController(alertController, animated: true, completion: nil)
}

func saveItem(itemToSave: String) {
let defaults = NSUserDefaults.standardUserDefaults()
//defaults.setInteger(identity, forKey: "identity")

listeDeListes = listeDeListes + [itemToSave]
defaults.setObject(listeDeListes, forKey: "identity")
defaults.synchronize()

}
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return 50
}

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

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell")! as UITableViewCell

let item = listeDeListes[indexPath.row]

cell.textLabel?.text = item as! String

return cell
}

此代码同时有效和​​无效。请帮我找出原因和方法。

在“坏的”项目中,我得到这个错误信息:  image

最佳答案

您需要使用相同的标识符注册单元。

由于您使用 Storyboard 来设置表格,因此在 Storyboard 中选择 TableViewController 中的单元格,然后打开属性检查器 (⌥⌘4) 并写入 Cell在标识符前面。

关于swift - 使用 TableviewController 时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39311259/

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