Как установить для GCDWebServerOption_AutoicallySuspendInBackground значение NO

Я новичок в iOS и Swift с некоторым опытом в Android. Я использую GCDWebUploader. Работает нормально.

Сервер приостанавливается, когда приложение находится в фоновом режиме. Я знаю об ограничениях в фоновом исполнении iOS. Я не хочу менять это поведение.

Но я нашел в документации GCDWebServer, что мы можем отключить эту приостановку. Проверьте здесь https://github.com/swisspol/GCDWebServer. Именно эта часть

Если приложение работает в фоновом режиме, а HTTP-соединения не открываются, GCDWebServer немедленно приостановит себя и перестанет принимать новые подключения, как если бы вы вызвали -stop (это поведение можно отключить с помощью параметра ****GCDWebServerOption_AutomaticsSuspendInBackground****),

Как вы установите эту опцию. Я старался

GCDWebServerOption_AutomaticallySuspendInBackground = "NO"

И я получаю очевидную ошибку:

Невозможно присвоить значению: 'GCDWebServerOption_AutomaticsSuspendInBackground' является константой 'let'

1 ответ

Решение

Вы должны передать параметры конфигурации, используя NSDictionary с помощью следующего метода из экземпляра GCDWebServer:

- (BOOL)startWithOptions:(NSDictionary*)options error:(NSError**)error;

Изменить: практический пример со словарем на лету в Objective-C:

NSError*myError = nil;
self.webServer = [[GCDWebServer alloc] init];
BOOL success = [self.webServer startWithOptions:@{
               GCDWebServerOption_AutomaticallySuspendInBackground : @(NO)
               } error:&myError];

Свифт код

var myError: NSError?
let webServer = GCDWebServer()
webServer.startWithOptions([GCDWebServerOption_AutomaticallySuspendInBackground : false], error: myError)

Небольшой совет: если вы хотите изменить уровень журнала GCDWebServer, вы можете использовать статический метод:

[GCDWebServer setLogLevel:4];
Другие вопросы по тегам