TableViewCell 中的解析值未更新
Posted
技术标签:
【中文标题】TableViewCell 中的解析值未更新【英文标题】:Parse Values in TableViewCell not updating 【发布时间】:2017-07-19 17:36:40 【问题描述】:非常感谢任何可以帮助我的人,非常感谢!
我正在构建一个约会应用程序,并尝试在解析查询后将我的匹配项加载到表中。预期的结果是表格视图包含匹配图像和匹配 ID。现在我有代码可以在下面完美运行。
import UIKit
import Parse
class MyListViewController: UIViewController, UITableViewDataSource,
UITableViewDelegate
var images = [UIImage]()
var userIds = [String]()
@IBOutlet weak var tView: UITableView!
@IBAction func toSwiperButton(_ sender: Any)
performSegue(withIdentifier: "ToSwiper", sender: self)
override func viewDidLoad()
super.viewDidLoad()
let query = PFUser.query()
query?.whereKey("objectId", containedIn: PFUser.current()?["accepted"]
as! [String])
query?.findObjectsInBackground(block: (objects, error) in
if let users = objects
for object in users
if let user = object as? PFUser
let imageFile = user["photo"] as! PFFile
imageFile.getDataInBackground(block: (data, error) in
if let imageData = data
self.images.append(UIImage(data: imageData)!)
self.userIds.append(user.objectId!)
self.tView.reloadData()
)
)
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
internal func tableView(_ tableView: UITableView, numberOfRowsInSection
section: Int) -> Int
return images.count
internal func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as! PDPLIstViewTableViewCell
cell.Image.image = images[indexPath.row]
cell.id.text = userIds[indexPath.row]
return cell
当我尝试在表格视图中为“姓名”和“年龄”添加两个附加标签时,问题就出现了——我似乎无法在 Parse 的查询中找到正确的方法来调用它们以及工作照片查询.
我想要的结果是表格中的每个单元格都有一个图像(代码有效)ID(代码有效)名称(代码无效)和年龄(代码无效)
“不工作”的意思是当我尝试从解析数据中创建年龄变量时出现大量错误,因此我可以将其传递到数组中,以便我的表格视图可以显示旁边的文本图片。
这是我在“年龄”标签上用于非工作代码的内容,我认为错误是我试图使用“= data”提取名称/年龄,我必须使用不同的术语?
import UIKit
import Parse
class MyListViewController: UIViewController, UITableViewDataSource,
UITableViewDelegate
var images = [UIImage]()
var userIds = [String]()
var name = [String]()
var age = [String]()
@IBOutlet weak var tView: UITableView!
@IBAction func toSwiperButton(_ sender: Any)
performSegue(withIdentifier: "ToSwiper", sender: self)
override func viewDidLoad()
super.viewDidLoad()
let query = PFUser.query()
query?.whereKey("objectId", containedIn: PFUser.current()?["accepted"]
as! [String])
query?.findObjectsInBackground(block: (objects, error) in
if let users = objects
for object in users
if let user = object as? PFUser
let ageFile = user["age"] as! PFFile
ageFile.getDataInBackground(block: (data, error) in
if let ageData = data
self.age.append(UILabel(data: ageData)!)
let imageFile = user["photo"] as! PFFile
imageFile.getDataInBackground(block: (data, error) in
if let imageData = data
self.images.append(UIImage(data: imageData)!)
self.userIds.append(user.objectId!)
self.age.append(String(data: ageFile))
self.tView.reloadData()
)
)
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
internal func tableView(_ tableView: UITableView, numberOfRowsInSection
section: Int) -> Int
return images.count
internal func tableView(_ tableView: UITableView, cellForRowAt indexPath:
IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for:
indexPath) as! PDPLIstViewTableViewCell
cell.image.image = images[indexPath.row]
cell.id.text = userIds[indexPath.row]
cell.name.text = name[indexPath.row]
cell.age.text = age[indexPath.row]
return cell
【问题讨论】:
【参考方案1】:您正在循环中重新加载表格视图(很多),当 ageData 完成时您也不会重新加载。查询完成后,尝试重新加载一次 tableview。在:
internal func tableView(_ tableView: UITableView, cellForRowAt indexPath:
IndexPath) -> UITableViewCell
guard let ageFile = age[indexPath.row] as? PFFile else return
ageFile.getDataInBackground(block: (data, error) in
if let ageData = data
cell.age.text = ageData
【讨论】:
这对我指出正确的方向很有帮助,我最终在一个不同的地方,但非常感谢你指出正确的方向。非常感谢您的回复! 当然,没问题。如果答案是正确的,您可以将其视为正确答案。否则,为未来的用户回答您自己的问题可能会很好。 我确实投票认为它是正确的,但系统说我的投票没有显示,因为我没有足够的声望点,呜呜呜…… 这与投票无关,而是为您的问题选择正确的答案(绿色 vink)。以上是关于TableViewCell 中的解析值未更新的主要内容,如果未能解决你的问题,请参考以下文章