2015-07-16 2 views
0

Я попытался реализовать политику кэширования с помощью Parse. Вот где я запроса данных из синтаксического анализа, а также, где я использую политику кэширования:Как использовать политику анализа парсеров

func findEmployeeForLoggedInUser(completion: (array: [AnyObject], error: String?) -> Void) { 
    if PFUser.currentUser() != nil { 
     let query = PFQuery(className: "Employee") 
     query.cachePolicy = PFCachePolicy.CacheElseNetwork //CACHE POLICY 
     query.whereKey("employerId", equalTo: PFUser.currentUser()!.objectId!) 
     query.findObjectsInBackgroundWithBlock { (results, error) -> Void in 
      var employeeArray = [PFEmployee]() 
      if let error = error { 
       let errorString = error.userInfo?["error"] as? String 
       completion(array: employeeArray, error: errorString) 
      } else { 
       for employee in results! { 
        let currentEmployee: PFEmployee = employee as! PFEmployee 
        employeeArray.append(currentEmployee) 
       } 
       completion(array: employeeArray, error: nil) 
      } 
     } 
    } 
} 

Кроме того, каждый раз, когда пользователь входит в систему или подпишется, я использовал эту строку кода: PFQuery.clearAllCachedResults() очистить все кэшированные Результаты.

Когда я пытаюсь запустить приложение, он выходит из строя, и это сообщение об ошибке в области отладки:

2015-07-16 14: 53: 38,644 Сотрудник Хранитель [73678: 5099293] [Ошибка]: Не удалось выполнить команду в конечном итоге с ошибкой: Ошибка Домен = Код анализа = 209 «Недействительный токен сеанса» UserInfo = 0x7fe150712ef0 {code = 209, originalError = Error Domain = NSURLErrorDomain Code = -1011 "Операция не может быть выполнена. (Ошибка NSURLErrorDomain -1011.) ", Временный = 0, ошибка = недопустимый токен сеанса, NSLocalizedDescription = недействительный токен сеанса} 2015-07-16 14: 54: 01.172 Сотрудник-хранитель [73678: 5098808] *** Завершение приложения из-за неперехваченного исключения ' NSInternalInconsistencyException ", причина: 'Метод не разрешен, когда включено Pinning.'

LibC++ abi.dylib: оканчивающиеся неперехваченного исключением типа NSException

Что я делаю неправильно?

ответ

1

Как написано в последней строке журнала:

"Method not allowed when Pinning is enabled." 

Если вы посмотрите на official Parse documentation for PFQuery, более конкретно для cachePolicy собственности, то это написано:

The cache policy to use for requests. 
Not allowed when Pinning is enabled. 

Так, к сожалению, в настоящее время невозможно смешать функцию фиксации и функции кеширования.


Если вы не используете локальную функцию хранилища данных, то я рекомендовал бы вам просто отключить эту функцию и использовать функции кэширования.

В случае, если вы полагаетесь на локальную функцию хранилища данных, я бы рекомендовал вам реализовать какую-либо функцию кеширования самостоятельно, используя локальное хранилище данных.

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