我在緩存策略中沒有從緩存中獲取對象時遇到了一些問題。這裏是我打電話給我取對象的函數:沒有從緩存中獲取對象 - 解析
func findEmployeeForLoggedInUser(completion: (array: [AnyObject], error: String?) -> Void) {
if PFUser.currentUser() != nil {
let query = PFQuery(className: "Employee")
query.cachePolicy = PFCachePolicy.cacheElseNetwork
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
的緩存策略是cacheElseNetwork
。但是,當我嘗試通過調用此函數來檢索我的對象時,它不能完全工作,因爲它不檢索數據。我也禁用了該Parse本地數據存儲。此外,每次用戶重新登錄時,我都會清除所有緩存的結果。
如何解決此問題?
你是否執行過這個問題之前的查詢,你從網絡中提取數據然後在本地PINNED數據? – Loxx
你說它沒有檢索任何數據。如果禁用緩存會怎麼樣?然後你的查詢檢索任何數據?如果'employerId'是一個引用或指針類型,那麼通常只會說'whereKey(「employerId」,equalTo:PFUser.currentUser()!)' – Paulw11