I'm loading data in my ViewController inside of an AFNetworking request. However doing this causes the data inside of that method to load 2-3 seconds after everything else inside of my viewDidLoad has already loaded. WHY? How can I make it so that this data all appears on the screen at the same time? I've seen a few variations of this question on stack and none of the suggested fixes seem to work for me. See code below.
ViewController.m
NSMutableDictionary *viewParams = [NSMutableDictionary new];
[viewParams setValue:@"map" forKey:@"view_name"];
[DIOSView viewGet:viewParams success:^(AFHTTPRequestOperation *operation, id responseObject) {
dispatch_async(dispatch_get_main_queue(), ^{
self.mapuserData = (NSMutableArray *)responseObject;
[self.tableView reloadData];
[operation responseString];
if ([self.mapuserData count] > 0 ) {
NSString *thisUserId = [self.mapuserData objectForKey:@"users_name"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"node_title CONTAINS[cd] %@",
thisUserId];
NSArray *resultArray = [self.acceptedFriends filteredArrayUsingPredicate:predicate];
NSLog(@"RESULT %@", resultArray);
if ([resultArray count] > 0) {
NSLog(@"Executed!");
self.addFriend.hidden = YES;
self.orangeFriendCircle.hidden = YES;
} else {
self.addFriend.hidden = NO;
self.orangeFriendCircle.hidden = NO;
}
self.username.text = self.mapuserData[@"users_name"];
self.userBio.text = self.mapuserData[@"userbio"];
NSString *thirdLink = self.mapuserData[@"photo_path"];
NSString *ImageURLTwo = thirdLink;
NSData *imageDataTwo = [NSData dataWithContentsOfURL:[NSURL URLWithString:ImageURLTwo]];
self.userPhoto.image = [[UIImage alloc] initWithData:imageDataTwo];
self.supervisionLabel.text = [self.mapuserData objectForKey:@"supervision"];
self.propertyLabel.text = [self.mapuserData objectForKey:@"property type"];
self.childrenLabel.text = [self.mapuserData objectForKey:@"children"];
self.specialLabel.text = [self.mapuserData objectForKey:@"special skills"];
self.emergencyLabel.text = [self.mapuserData objectForKey:@"emergency"];
self.username.text = [self.mapuserData objectForKey:@"first name"];
self.userBio.text = [self.mapuserData objectForKey:@"userbio"];
});
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Failure: %@", [error localizedDescription]);
}];