【发布时间】:2021-04-12 02:00:25
【问题描述】:
我在下面的表格视图单元格中显示数据时遇到问题是代码。
这是我第一次和最后一次设置的结构。
struct Person: Codable {
var firstName: String
var lastName: String
}
这是我保存数据的视图控制器。
class viewController: UIViewController {
var newPerson = [Person]()
override func viewDidLoad() {
let person = [Person(firstName: "Peterson", lastName: "Jota") , Person(firstName: "John", lastName: "Paul")]
let encoder = JSONEncoder()
if let encoded = try? encoder.encode(person) {
UserDefaults.standard.set(encoded, forKey: "savedPerson")
}
}
}
这是我试图加载数据的地方
class SeconClass: UITableViewController {
var person = [Person]()
override func viewDidLoad() {
tableView.delegate = self
tableView.dataSource = self
if let savedPerson = defaults.object(forKey: "one") as? Data {
let decoder = JSONDecoder()
if let loadedOne = try? decoder.decode(Person.self, from: savedPerson) {
self.person = UserDefaults.standard.object(forKey: "savedPerson")
}
}
}
func tableView( tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return person.count
}
func tableView( tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cellID", for: indexPath) as! UITableViewCell
cell.textLabel?.text = person[indexPath.row]
return cell
}
}
【问题讨论】:
-
您至少应该解释一下,让我们了解问题所在和情况。另外,请确保您的代码在 ` ` 中,以便将其突出显示为代码,以便我们阅读
-
如何从 userDefault 中检索人员数据,请添加代码
-
您的
tableView的dataSource设置了吗?您没有使用UITableViewController并且您的 tableView 数据源方法在您的viewController类之外 -
是的,我做到了。问题是我无法在表格视图单元格中显示人员数据
-
解码数据后调用
tableView.reloadData()。
标签: swift tableview userdefaults