2016-06-29 1 views
0

Я новичок в iOS и быстро с некоторым опытом работы в Android. Я использую GCDWebUploader. Его работа прекрасна.Как установить GCDWebServerOption_AutomaticallySuspendInBackground в NO

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

Но я нашел в документации GCDWebServer, что мы можем отключить эту приостановку. Проверьте здесь https://github.com/swisspol/GCDWebServer#gcdwebserver--background-mode-for-ios-apps. В частности, эта часть

If the app goes in the background while no HTTP connections are opened, GCDWebServer will immediately suspend itself and stop accepting new connections as if you had called -stop (this behavior can be disabled with the ****GCDWebServerOption_AutomaticallySuspendInBackground**** option).

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

GCDWebServerOption_AutomaticallySuspendInBackground = "NO" 

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

Cannot assign to value: 'GCDWebServerOption_AutomaticallySuspendInBackground' is a 'let' constant

ответ

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]; 

Swift код

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

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

[GCDWebServer setLogLevel:4]; 
+0

да Я смог установить переменную таким образом. Но я не вижу никаких изменений в серверной приостановке. Он все еще приостанавливается, когда находится в фоновом режиме. Я использую webuploader - он не будет работать таким образом? Будет делать больше чтения на нем. Я добавляю это как ответ тем временем. Спасибо! – lakvin

+0

Как только я получил его, работая с iOS 7, отключив таймер простоя системы: '[UIApplication sharedApplication] .idleTimerDisabled = YES;'. Я не совсем уверен, хотя, если он работает правильно с новыми iOS, так как они ввели лучший контроль за энергопотреблением. – lookaji

 Смежные вопросы

  • Нет связанных вопросов^_^