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 (етикетът) всъщност показва правилния objectID?   -  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 не е в този клас, така че не получава objectID, защото е в класа 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]; [пътуване whereKey:@lastTrip equalTo:[PFUser currentUser]]; [пътуване getObjectInBackgroundWithId:@lastTrip блок:^(PFObject *TripInformation, NSError *грешка) {   -  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