Невозможно получить значения из API при одновременном вызове в TabViewController 1 и 2 - Задача C

У меня есть TabViewController с 2 вкладками, первая вкладка моя Homescreen, Когда я открываю свое приложение и первая вкладка показывает, что он вызывает API,

API CALLED

_loadingHistory = ([(AppDelegate *)[[UIApplication sharedApplication] delegate] updateInprogress]);
    if(([NetworkConnectivity hasConnection]) && ([(AppDelegate *)[[UIApplication sharedApplication] delegate] datasourceUpdateRequired]) && !([(AppDelegate *)[[UIApplication sharedApplication] delegate] updateInprogress]))
    {
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
            _loadingHistory = YES;
            [(AppDelegate *)[[UIApplication sharedApplication] delegate] setUpdateInprogress:YES];
            [self startOperationsForReferenceList];
            GetMostRecentEnquiryController *getRecent = [[GetMostRecentEnquiryController alloc] initWithPelicanId:[[NSUserDefaults standardUserDefaults] valueForKey:needId] NumberOfItems:100 Delegate:self];
            [getRecent fetchMostRecentData];

            if (!self.loadingHistory) {
                [self loadMostRecentHistory];
            }
        });
    } else {
        if (!self.loadingHistory) {
            [self loadMostRecentHistory];
        }
    }

у меня есть MutableArray что получит результат API, Предположительно, после API вызов, он должен вернуть мне набор значений и поместить в MutableArray Я создал. В моей первой вкладке это работает хорошо. Вторая вкладка делает то же самое, она вызывает то же самое API,

Но когда я запускаю экран (показывает 1-ю вкладку), сразу нажимает на 2-ю вкладку (пока загружается 1-я вкладка, означая API еще не закончена), 2-я вкладка загружается вечно. Но когда я снова нажимаю на первую вкладку и возвращаюсь на 2-ю вкладку, подробности налицо.

ПОЛУЧИТЬ САМЫЙ ПОСЛЕДНИЙ МЕТОД ДАННЫХ

if(![NetworkConnectivity hasConnection]) return;
ShowNetworkActivityIndicator();
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"www.URI.com"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:[NSString stringWithFormat:@"%d",[self numberOfHistoryItems]] forKey:@"numbertofetch"];
[request setPostValue:[self neededId] forKey:@"neededId"];
[request setPostValue:@"commencement" forKey:@"sortby"];
[request setDelegate:self];
[request startSynchronous];
if(request.responseStatusCode == 200)
{
    [self.listOfAllItems removeAllObjects];
    [self.listOfFutureItems removeAllObjects];
    [self clearDatabase];
    NSData *jsonData = [request responseData];
    id result = [jsonData objectFromJSONData];
    HelloGetMostRecentEnquiries *userBase = [[HelloGetMostRecentEnquiries alloc] initWithDictionary:result];
    if([userBase isSuccess])
    {
        for (int i=0; i < userBase.enquiries.count; i++)
        {
            HelloEnquiries *enq = [[userBase enquiries] objectAtIndex:i];
            [self saveItemsToDatabase:enq];
        }
    }
    [(NSObject *)self.delegate performSelectorOnMainThread:@selector(finishedGetMostRecent:) withObject:self waitUntilDone:NO];
    HideNetworkActivityIndicator();
}
else
{
    HideNetworkActivityIndicator();
}

0 ответов

Другие вопросы по тегам