2016-10-18 5 views
0

私は情報をサーバーに解析していますが、問題はPFQueryを介して必要な文字列を取得できないようです。PFQueryは空の配列を返します

オブジェクトを印刷すると、空の配列が返されます。また(fahrtenRequests.count = 0)これは、PFQueryが自分のデータを読み取ることができないか、データが正しい形式でないためです。

イムここでは完全に失われ、:)すべてが完璧に正常に動作する必要がありそうですが、事前にあなたの助けのための

THANKSをdoesntの:)

私のコード:任意のため、再び

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) 

感謝help :)

+0

"CreatedAt"でユーザーのオブジェクトIDのクエリを実行できないと思います。これは有効ではないようです:query.whereKey( "createdAt"、equalTo:(PFUser.current()?objectId!)!) –

+0

@Satish Mavaniあなたは正直に感謝しています:) Date型のものですが、すべてが文字列でなければなりません –

+0

は今問題が解決しましたか? –

答えて

0

いいえ、それはPFQueryの仕組みではありません。 equalTo:の後のオブジェクトは、Parseダッシュボードのkey:@"..."の下のオブジェクトと同じタイプでなければなりません。

たとえば、あるユーザーが行ったすべての旅行を取得する場合は、ユーザーをまずUserクラスのポインターとして保存する必要があります(パースダッシュボードで、[編集] - > [

let query = PFQuery(className: "GemachteFahrten") 
query.whereKey("user", equalTo: PFUser.current()) 
//then execute the query 

解析のドキュメントを参照してください:列は、その後、我々は現在のユーザーに属するすべての旅行を取得したい、そして、ターゲットクラスとしてタイプ、ユーザ)

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() 

としてポインタを選択してくださいhttp://parseplatform.github.io/docs/ios/guide/#queries

+0

助けてくれてありがとうございました...私はあらかじめ知っていないので、残念ながら特定の旅行、どのような正確な値を探しています、私はちょうどそのタイプの文字列(少なくとも私はこれのように保存しました)。私は、Parseのドキュメントからたくさんの組み合わせを試しましたが、今までは何も動作しませんでした:/ –

+0

また、これは何が完了していませんか? equalToToの後のObjectはキーの下にあるオブジェクトと同じ型を持ちます ""それらは文字列です。これは文字列の配列に追加したいものです。私はちょうど私がequalToを設定しなければならないと思った:objectIdに、その旅行全体に正しい値 "cost"をとる。 –

+0

@StefanoChiabottiこんにちは、すべての旅行を取得しようとしていますか?私はまだあなたが達成しようとしていることについてちょっと混乱しています:/ –

0

どのようにすべての列の値をuserのobject idと比較できますか?

比較結果がNULLになる場合は、適切な値を入力してください。 また、createdAtパラメータで照会しないでください。タイプはDateです。 適切なデータタイプも確認してください。

+0

私はobjectIdと等しいはずの "kosten"または "gefahreneZeit"から正しい文字列を取ります。または私はこれを間違っているのですか?私はこれを示唆したように試しました:query.whereKey( "gefahreneKilometer"、equalTo: "objectId")しかし、それは動作しません –

関連する問題