dispatch_once в суперклассе? - PullRequest
       0

dispatch_once в суперклассе?

4 голосов
/ 11 декабря 2011

Если я вызову dispatch_once внутри метода экземпляра суперкласса, будет ли он выполняться один раз для каждого подкласса? Я предполагаю, что это не так, потому что в справочнике XCD Grand Central Dispatch (GCD) сказано, что он «выполняет блочный объект один раз и только один раз за время существования приложения».

Ответы [ 2 ]

4 голосов
/ 11 декабря 2011

Вы правильно прочитали документацию. Этот блок будет выполняться только один раз, при условии, что вы используете один и тот же токен.

3 голосов
/ 12 декабря 2011

Вы читаете документацию почти правильно: dispatch_once () будет выполняться только один раз за время существования данной переменной dispatch_once_t.Поскольку большинство приложений объявляют эту переменную как статическую глобальную, документация описывает этот шаблон.Если у вас есть токен, который уникален для каждого экземпляра класса и запускается с нулевой инициализацией, он будет выполняться для каждого экземпляра.

...