URL / Разбор XML / Создание графической проблемы - PullRequest
0 голосов
/ 29 января 2020

Проблемы с форматированием кода - надеюсь, вы понимаете, что объясняет:

Я пытаюсь использовать этот обычно цитируемый процесс для

a) запуска сеанса для вызова URL, который будет вернуть XML;

b) проанализировать XML для значений;

c) создавать метки и рисовать линии окружностей на виде. Пробовал разные версии - в 1 ярлыки создаются, но либо в строках нет, либо я получаю ошибку 'invalid context nil'.

Ниже приведен код в - (void)drawRect:(CGRect)rect, и да, он снова компилируется, а не создает графику CGRect. Любые рекомендации? Видимо проблема с потоками / очередями:

dispatch_async(dispatch_get_main_queue()){


CGContextRef context = UIGraphicsGetCurrentContext();



                   UIColor * greenColor = [UIColor colorWithRed:0.0 green:1.0 blue:0.0 alpha:1.0];

                   CGContextSetLineWidth (context, 24.0);

                   //Draw Line

                   startx = 20.0;
                   endx = 20.0 + (40.0 * (wins / 100.0));
                   starty = starty + 48.0;
                   endy = endy + 48.0;

                   CGContextSetStrokeColorWithColor (context, greenColor.CGColor);

                   CGContextMoveToPoint(context, startx, starty);
                   CGContextAddLineToPoint(context, endx, endy);
                   CGContextStrokePath (context);

                  // Labels created here - correctly

    });

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
    NSString *urlAsString = [NSString stringWithFormat:@"https://www.thewebsite.com/therequest.php?lst=%@&fst=%@", var1, var2];

        NSCharacterSet *set = [NSCharacterSet URLQueryAllowedCharacterSet];
        NSString *encodedUrlAsString = [urlAsString stringByAddingPercentEncodingWithAllowedCharacters:set];

        NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];

        NSLog(@"Creating session to handle URL req...");
        [[session dataTaskWithURL:[NSURL URLWithString:encodedUrlAsString]
                completionHandler:^(NSData *myData, NSURLResponse *response, NSError *error) {
      // Code to get data, parse XML - all work, data is sent and can be read....
    }
});
...