我有一个tableView,它显示用户的电子邮件和生日数据,问题是当前用户的电子邮件和生日也显示在列表中。如何避免这种情况?
这是我尝试过的代码,电子邮件来自emailList [indexPath.row]。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "emailCell", for: indexPath)
let snapshot = emailList[indexPath.row]
if let userDictionary = snapshot.value as? [String:AnyObject] {
if let email = userDictionary["email"] as? String {
if let DOB = userDictionary["DOB"] as? String {
cell.textLabel?.text = email
cell.detailTextLabel?.text = DOB
}
}
}
我想在tableView中查看用户电子邮件列表和出生日期,但没有当前用户信息。
最佳答案
获取当前用户数据和emailList后,您可以使用类似以下内容的过滤emailList
func downloadData(_ completionHandler: (AnyObject?) -> ()){
let data:AnyObject? = //perform the logic to download data
completionHandler(data)
}
override func viewDidLoad() {
super.viewDidLoad()
downloadData(){ data in
//Do stuff with data - parse it etc.
guard let emailList = emailList as? [[String:String]] // cast to the type you need
else {
return // Do some error handling
}
let filteredData = emailList.filter { (dict: [String:String]) -> Bool in
if dict["email"] == currentEmail && dict["user"] == currentUsername {
return false
}
return true
}
self.tableView.delegate = self
self.tableView.dataSource = self
}
}