PFQuery returns 空数组
PFQuery returns Empty Array
所以我一直在向解析服务器添加信息,问题是我似乎无法通过 PFQuery 获取我需要的字符串。
如果我打印对象,它 returns 一个空数组。还有 (fahrtenRequests.count = 0)。有人建议这是因为 PFQuery 无法读取我的数据或者我的数据格式不正确。
我完全迷失在这里,似乎一切都应该工作得很好,但没有
提前感谢您的帮助:) :)
我的代码:
import UIKit
import Parse
class HistoryViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var zeit: Array = [String]()
var kosten:Array = [String]()
var kilometer: Array = [String]()
var datum: Array = [String]()
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.delegate = self
tableView.register(UINib(nibName: "CellHistoryViewControllerTableViewCell", bundle: nil), forCellReuseIdentifier: "CellHistory")
let query = PFQuery(className: "GemachteFahrten")
query.whereKey("gefahreneZeit", equalTo: (PFUser.current()?.objectId!)!)
query.whereKey("kosten", equalTo: (PFUser.current()?.objectId!)!)
query.whereKey("createdAt", equalTo: (PFUser.current()?.objectId!)!)
query.whereKey("gefahreneKilometer", equalTo: (PFUser.current()?.objectId!)!)
query.findObjectsInBackground { (objects, error) in
if error != nil {
print("error finding user data")
} else {
print("check2")
print(objects!)
if let fahrtenRequests = objects {
print(fahrtenRequests.count)
再次感谢您的帮助:)
如何将所有列值与用户的对象 ID 进行比较?
比较结果为空,请尝试使用适当的值。
此外,您不应查询 createdAt
参数,其类型为 Date
。
还要检查适当的数据类型。
不,这不是 PFQuery 的工作方式。 equalTo:
之后的对象必须与 Parse 仪表板中 key:@"..."
下的对象类型相同。
例如,在您的情况下,如果您想检索一个用户进行的所有行程,您需要先将用户保存为指向用户 class 的指针:(在您的解析仪表板中,select Edit->Add a Column,然后选择Pointer作为类型,User作为目标class)
let trip = PFObject(className:"GemachteFahrten");
//save the user who made this trip
trip["user"] = PFUser.current()
//save other things like costs, distance...etc
trip["kosten"] = ...
trip["gefahreneKilometer"] = ...
trip.saveInBackground()
然后,我们要获取属于当前用户的所有行程:
let query = PFQuery(className: "GemachteFahrten")
query.whereKey("user", equalTo: PFUser.current())
//then execute the query
请参阅 Parse 文档 http://parseplatform.github.io/docs/ios/guide/#queries
所以我一直在向解析服务器添加信息,问题是我似乎无法通过 PFQuery 获取我需要的字符串。
如果我打印对象,它 returns 一个空数组。还有 (fahrtenRequests.count = 0)。有人建议这是因为 PFQuery 无法读取我的数据或者我的数据格式不正确。
我完全迷失在这里,似乎一切都应该工作得很好,但没有
提前感谢您的帮助:) :)
我的代码:
import UIKit
import Parse
class HistoryViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var zeit: Array = [String]()
var kosten:Array = [String]()
var kilometer: Array = [String]()
var datum: Array = [String]()
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
self.tableView.delegate = self
tableView.register(UINib(nibName: "CellHistoryViewControllerTableViewCell", bundle: nil), forCellReuseIdentifier: "CellHistory")
let query = PFQuery(className: "GemachteFahrten")
query.whereKey("gefahreneZeit", equalTo: (PFUser.current()?.objectId!)!)
query.whereKey("kosten", equalTo: (PFUser.current()?.objectId!)!)
query.whereKey("createdAt", equalTo: (PFUser.current()?.objectId!)!)
query.whereKey("gefahreneKilometer", equalTo: (PFUser.current()?.objectId!)!)
query.findObjectsInBackground { (objects, error) in
if error != nil {
print("error finding user data")
} else {
print("check2")
print(objects!)
if let fahrtenRequests = objects {
print(fahrtenRequests.count)
再次感谢您的帮助:)
如何将所有列值与用户的对象 ID 进行比较?
比较结果为空,请尝试使用适当的值。
此外,您不应查询 createdAt
参数,其类型为 Date
。
还要检查适当的数据类型。
不,这不是 PFQuery 的工作方式。 equalTo:
之后的对象必须与 Parse 仪表板中 key:@"..."
下的对象类型相同。
例如,在您的情况下,如果您想检索一个用户进行的所有行程,您需要先将用户保存为指向用户 class 的指针:(在您的解析仪表板中,select Edit->Add a Column,然后选择Pointer作为类型,User作为目标class)
let trip = PFObject(className:"GemachteFahrten");
//save the user who made this trip
trip["user"] = PFUser.current()
//save other things like costs, distance...etc
trip["kosten"] = ...
trip["gefahreneKilometer"] = ...
trip.saveInBackground()
然后,我们要获取属于当前用户的所有行程:
let query = PFQuery(className: "GemachteFahrten")
query.whereKey("user", equalTo: PFUser.current())
//then execute the query
请参阅 Parse 文档 http://parseplatform.github.io/docs/ios/guide/#queries