У меня есть это свойство, определенное
@property (nonatomic, strong) NSString *ObjectID;
А это мой ViewDidLoad:
- (void)viewDidLoad {
[super viewDidLoad];
PFQuery *getObjectIDforRow = [PFQuery queryWithClassName:@"Event"];
[getObjectIDforRow selectKeys:@[@"objectId"]]; // We decide which fields to get
[getObjectIDforRow whereKey:@"Organizator" notEqualTo:PFUser.currentUser.username];
[getObjectIDforRow whereKey:@"EventLocation" equalTo:Pointfrommap];
// This method is to get the ObjectID for the selected row
[getObjectIDforRow findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
// We save the Object ID found in a NSString
self.ObjectID = [NSString stringWithFormat:@"%@", [objects valueForKey:@"objectId"]];
NSLog(@"Object ID %@", self.ObjectID);
[self getParticipantsarray]; // Here the exception won't come, but self.ObjectID is still null
} else {
// Log details of the failure
NSLog(@"Error: %@ %@", error, [error userInfo]);
}
}];
}
И это getParticipantsarray:
-(void)getParticipantsarray{
NSLog(@"Object ID is %@", self.ObjectID); // ID = Gj95aETEWq
PFQuery *getArrayParticipants = [PFQuery queryWithClassName:@"Event"];
[getArrayParticipants selectKeys:@[@"Participants"]]; // We decide which fields to get
[getArrayParticipants whereKey:@"ObjectId" equalTo:self.ObjectID]; // Here ObjectID is Null
} else {
// Log details of the failure
NSLog(@"Error: %@ %@", error, [error userInfo]);
}
}];
}
Моя проблема:
По какой-то причине я не знаю, ObjectID
содержит нулевое значение внутри созданного мной getArrayParticipants
PFQuery
, тогда как в viewDidLoad
и событии внутри метода хранится правильное значение.
Мое предположение:
Я думаю, что это как-то связано с синхронными / асинхронными потоками, как указывалось ранее