gpt4 book ai didi

json - 我的 textlabel 和 detailtextLabel 显示相同的文本

转载 作者:行者123 更新时间:2023-11-28 12:04:22 27 4
gpt4 key购买 nike

Iphone screenshot /image/zQ06M.png

我试图让我的 textLabel 和我的 detailTextLabel 显示两个不同的东西,但出于某种原因,它们都说同样的东西。这里应该只有一个单元格,顶部标签显示数字 2,底部标签显示 ;slakdfj(现在随机输入)。请参阅上面的链接以获取屏幕截图。

这是主要的VC:

import UIKit
import Firebase
import FirebaseAuth
import FirebaseDatabase
import FirebaseStorage


class ListViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

@IBOutlet var tableViewProducts: UITableView!

var delegate: ListViewController?

var ref:DatabaseReference?
var databaseHandle: DatabaseHandle?

var postData = [productsList]()

override func viewDidLoad() {
super.viewDidLoad()
ref = Database.database().reference().child("0")
loadProducts()
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

return postData.count

}
func loadProducts() {
ref?.observe(DataEventType.value, with: { (snapshot) in
var newSweets = [productsList]()

for post in snapshot.children {
let postObject = productsList(snapshot: post as! DataSnapshot)
newSweets.append(postObject)
print(self.postData)

}
self.postData = newSweets
self.tableViewProducts.reloadData()
}) { (error:Error) in
print(error)
}
}

//This places the text on the ViewControllerTableViewCell
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)

let sweet = postData[indexPath.row]

cell.textLabel?.text = sweet.id
cell.detailTextLabel?.text = sweet.p_name


return cell
}

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

performSegue(withIdentifier: "showDetails", sender: self)
}

}

结构如下:

导入基金会导入 UIKit导入 Firebase 数据库

struct productsList {

let id: String!
let p_name: String!

init(id: String, p_name: String) {
self.id = id
self.p_name = p_name
}

init (snapshot:DataSnapshot) {
id = snapshot.value as! String
p_name = snapshot.value as! String

}

}

数据结构(目前还很基础):

[ {
"id" : "2",
"p_name" : ";slakdfj"
} ]

最佳答案

在这里,您将相同的值设置为 id 和 p_name。这就是原因。

init (snapshot:DataSnapshot) {
id = snapshot.value as! String
p_name = snapshot.value as! String
}

您需要像这样更改此代码:

init (snapshot:DataSnapshot) {
var dict = snapshot.value as! [String: AnyObject]
id = dict["id"] as! String
p_name = dict["p_name"] as! String
}

在这里您需要更改“id”和“p_name”以适合您的 firebase 数据库。

关于json - 我的 textlabel 和 detailtextLabel 显示相同的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49708851/

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