Возможны ли динамические ссылки на Synchronous? - PullRequest
0 голосов
/ 04 апреля 2019

goo.gl больше не доступен, поэтому я решил использовать динамическую ссылку.

Мой код требует синхронизированных сокращенных результатов URL.

Я попытался использовать dispatch_semaphore_t

Я ожидалчтобы течь таким образом // номер 1 ==> // номер 3 ==> // номер 2 ==> // номер 4

но мой код // номер 1 ==> // номер 3==> больше нет ответа.

// number 1

    __block NSURL * getUrl = nil;

    [linkBuilder shortenWithCompletion:^(NSURL * _Nullable shortURL,
                                         NSArray<NSString *> * _Nullable warnings,
                                         NSError * _Nullable error) {

    // number 2
        if (error || shortURL == nil)
            getUrl = [NSURL URLWithString:[longUrl stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]];
        else
            getUrl = shortURL    ;
        dispatch_semaphore_signal(semaphore);
    }];

     // number 3
    dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
     // number 4
    return getUrl.absoluteString;


I wish my code run
// number 1 ==> // number 3 ==> // number 2 ==>// number 4

please help me
...