PFQuery не получает идентификатор

В первом PFQuery (пассажиры) я получаю несколько значений, среди которых иногда выделяются специальные идентификаторы, которые должны передавать данные во второй PFQuery (поездка). Данные от первого идентификатора необходимо передать в getObjectInBackgroundWithId:XXXX (отключение класса). Как я могу это сделать?

- (void)viewDidLoad {
UISwipeGestureRecognizer *gestureRight;
gestureRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRight:)];
[[self view] addGestureRecognizer:gestureRight];

PFQuery *passenger = [PFQuery queryWithClassName:@"ClubWorld"];
[passenger getObjectInBackgroundWithId:@"zB96iIkoqo" block:^(PFObject *ClubWorld, NSError *error) {
    // Do somethi   ng with the returned PFObject in the gameScore variable.
NSLog(@"%@", ClubWorld);
    self.firstName.text = ClubWorld[@"firstName"];
    self.lastName.text = ClubWorld[@"lastName"];
    self.Mileage.text = ClubWorld[@"clubMiles"];
    self.withBAFrom.text = ClubWorld[@"withBAFrom"];
    self.withFCFrom.text = ClubWorld[@"withFCFrom"];
    self.fundsSpent.text = ClubWorld[@"fundsSpent"];
    self.lastTrip.text = ClubWorld[@"lastTrip"];
    self.previoustripObjectID = ClubWorld[@"lastTrip"];
}];

PFQuery *trip = [PFQuery queryWithClassName:@"Trips"];
[trip getObjectInBackgroundWithId:self.previoustripObjectID block:^(PFObject *TripInformation, NSError *error) {
    // Do something with the returned PFObject in the gameScore variable.
NSLog(@"%@", TripInformation);
    self.fromCountry.text = TripInformation[@"fromCountry"];
    self.toCountry.text = TripInformation[@"toCountry"];
    self.departureAirport.text = TripInformation[@"departureAirport"];
    self.arrivalAirport.text = TripInformation[@"arrivalAirport"];
    self.earnedMiles.text = TripInformation[@"earnedMiles"];
    self.flightClass.text = TripInformation[@"flightClass"];
    self.departureTime.text = TripInformation[@"departureTime"];
    self.arrivalTime.text = TripInformation[@"arrivalTime"];
    self.flightCost.text = TripInformation[@"flightCost"];
}];

[super viewDidLoad];

}


person Dmitriy Groschovskiy    schedule 13.01.2015    source источник
comment
В чем именно ошибка?   -  person soulshined    schedule 13.01.2015
comment
Мне нужно передать ответ, который приходит из PFQuery * пассажир в PFQuery * поездка   -  person Dmitriy Groschovskiy    schedule 13.01.2015
comment
NSLog(@%@, ClubWorld); // приносит мне ответ от сервера Parse. [trip getObjectInBackgroundWithId:NEED_INSERT_OBJECT // И здесь мне нужно вставить значение, которое я получил с помощью NSLog. Я не могу передать значение, которое я получил.   -  person Dmitriy Groschovskiy    schedule 13.01.2015
comment
И вы говорите, что self.lastTrip.text не работает как objectID?   -  person soulshined    schedule 13.01.2015
comment
Пробовал вставлять значения _lastTrip, self.lastTrip.text и ничего. Я могу показать вам, как сделать работу программы. Может на примере будет понятнее?   -  person Dmitriy Groschovskiy    schedule 13.01.2015
comment
Они находятся в одном и том же ViewController. Если подставить в getObjectInBackgroundWithId:‹value› ViewController то вывести информацию.   -  person Dmitriy Groschovskiy    schedule 14.01.2015
comment
Итак, мой вопрос: действительно ли self.lastTrip.text (метка) отображает правильный идентификатор объекта?   -  person soulshined    schedule 14.01.2015
comment
UILabel показывает пришедший ID и выводит его на экран. Но мне нужно вставить его в поездку getObjectInBackgroundWithId:   -  person Dmitriy Groschovskiy    schedule 14.01.2015
comment
Я сделал как вы сказали, но все равно у меня ничего не появляется. См.: s24.postimg.org/itmvmpcp1/image.png   -  person Dmitriy Groschovskiy    schedule 14.01.2015
comment
Все еще не приходят от второго класса данных. Может надо их последовательно скачивать?   -  person Dmitriy Groschovskiy    schedule 14.01.2015
comment
Вероятно, это не работает, потому что вы пытаетесь поместить значение вместо ObjectID. lastTrip не является ObjectID   -  person soulshined    schedule 14.01.2015
comment
Теперь я фиксирую новый код   -  person Dmitriy Groschovskiy    schedule 14.01.2015
comment
Это также связано с тем, что во втором запросе lastTrip не находится в этом классе, поэтому он не получает идентификатор объекта, поскольку находится в классе ClubWorld. Жаль, что я пропустил эти вещи раньше. Я работаю на своем iPhone. Вы не можете пересекать классы запросов, как это   -  person soulshined    schedule 14.01.2015
comment
Извините, мне не нужен проект. Как указано выше. Вы не можете ссылаться на идентификатор объекта другого класса, если запрашиваете другой класс. Опубликуйте изображение того, как ваши классы настроены в бэкэнде синтаксического анализа.   -  person soulshined    schedule 14.01.2015
comment
s17.postimg.org/4llkondsv/image.png   -  person Dmitriy Groschovskiy    schedule 14.01.2015
comment
Да, так что в основном во втором запросе вы пытаетесь найти идентификатор объекта значения, во-вторых, это значение находится в другом классе. Вы не можете пересекать классы запросов с параметрами. Другими словами, вы не можете запрашивать данные ClubWorld в классе Trip. Вы должны найти идентификатор объекта строки в классе Trip. Вам придется научиться использовать указатели и отношения   -  person soulshined    schedule 14.01.2015
comment
Не могли бы вы помочь мне сделать это? Я впервые работал с Parse и не могу понять как это сделать.   -  person Dmitriy Groschovskiy    schedule 14.01.2015
comment
parse.com/tutorials/one-to-many-relationships   -  person soulshined    schedule 14.01.2015
comment
Не работает, проверьте пожалуйста, ставлю ли я указатель? PFQuery *trip = [PFQuery queryWithClassName:@Trips]; [trip whereKey:@lastTrip equalTo:[PFUser currentUser]]; [путешествие getObjectInBackgroundWithId:@lastTrip block:^(PFObject *TripInformation, NSError *error) {   -  person Dmitriy Groschovskiy    schedule 14.01.2015
comment
Вы не установили отношения. lastTrip не имеет отношения к текущему пользователю. И снова, lastTrip должен быть в классе Trips, вы не можете выполнять кросс-запросы. Находится ли lastTrips в классе Trips в вашем бэкенде?   -  person soulshined    schedule 14.01.2015
comment
Вы создали столбец в своем классе ClubWorld, который представляет собой отношение под названием lastTrip, связанное с _User?   -  person soulshined    schedule 15.01.2015


Ответы (1)


В PassengerViewController.h нужно написать такой код:

@property (strong, nonatomic) NSString *previoustripObjectID;

В PassengerViewController.m нужно написать такой код:

-

 (void)viewDidLoad {
    UISwipeGestureRecognizer *gestureRight;
    gestureRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRight:)];
    [[self view] addGestureRecognizer:gestureRight];

    [self passengerRequest];
    [self previousTrip];

    [super viewDidLoad];
}

- (void)passengerRequest {
    PFQuery *passenger = [PFQuery queryWithClassName:@"ClubWorld"];
    [passenger getObjectInBackgroundWithId:@"jnDrQthmQX" block:^(PFObject *ClubWorld, NSError *error) {
        NSLog(@"%@", ClubWorld);
        self.profilePhoto = ClubWorld[@"passengerPhoto"];
        self.firstName.text = ClubWorld[@"firstName"];
        self.lastName.text = ClubWorld[@"lastName"];
        self.Mileage.text = ClubWorld[@"clubMiles"];
        self.withBAFrom.text = ClubWorld[@"withBAFrom"];
        self.withFCFrom.text = ClubWorld[@"withFCFrom"];
        self.fundsSpent.text = ClubWorld[@"fundsSpent"];
        self.previoustripObjectID = ClubWorld[@"lastTrip"];
    }];
}

- (void)previousTrip {
    PFQuery *trip = [PFQuery queryWithClassName:@"Trips"];
    [trip getObjectInBackgroundWithId:self.previoustripObjectID block:^(PFObject *TripInformation, NSError *error) {
        NSLog(@"%@", TripInformation);
        self.fromCountry.text = TripInformation[@"fromCountry"];
        self.toCountry.text = TripInformation[@"toCountry"];
        self.departureAirport.text = TripInformation[@"departureAirport"];
        self.arrivalAirport.text = TripInformation[@"arrivalAirport"];
        self.earnedMiles.text = TripInformation[@"earnedMiles"];
        self.flightClass.text = TripInformation[@"flightClass"];
        self.departureTime.text = TripInformation[@"departureTime"];
        self.arrivalTime.text = TripInformation[@"arrivalTime"];
        self.flightCost.text = TripInformation[@"flightCost"];
    }];
}
person Dmitriy Groschovskiy    schedule 14.01.2015