2016-10-18 3 views
0

저는 서버를 구문 분석하기 위해 정보를 추가했지만 문제는 PFQuery를 통해 필요한 문자열을 얻을 수없는 것입니다.PFQuery가 빈 배열을 반환합니다

개체를 인쇄하면 빈 Array가 반환됩니다. 또한 (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) 

감사합니다 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

또한 완료되지 않았다면 어떻게됩니까? equalTo : 뒤에있는 Object는 문자열 아래에있는 객체와 동일한 유형이며, 문자열 배열에 추가하고자합니다. 나는 방금 내가 equalTo를 설정해야한다고 생각했다 : objectId에, 전체 여행에 대해 "cost"를 올바른 값으로 받는다. –

+0

@StefanoChiabotti 안녕하세요, 모든 여행을 되 찾으려고하십니까?Coz 나는 아직도 당신이 달성하려고하는 것에 대해 약간 혼란 스럽습니다./ –

0

사용자의 개체 ID로 모든 열 값을 어떻게 비교할 수 있습니까?

비교 결과가 null이되면 해당 값으로 시도하십시오. createdAt 매개 변수의 유형은 Date이어야합니다. 적절한 데이터 유형도 확인하십시오.

+0

Im 그래서 objectId와 동일해야하는 "kosten"또는 "gefahreneZeit"에서 오른쪽 문자열을 비교합니다. 아니면 내가 잘못하고있는거야? 나는 이것을 다음과 같이 제안했다 : query.whereKey ("gefahreneKilometer", equalTo : "objectId") 그러나 그것은 작동하지 않을 것이다. –

관련 문제