2016-02-13 113 views
0

如何跳過從ckqueryCursor來從cloudKit批次結果的數量,我想顯示更多的細胞依賴於現有的細胞數量在我的表跳躍數cloudkit

我不喜歡的東西,要知道如何許多記錄,有多少批,但我不知道如何告訴cloudkit,顯示第二批,而不是重裝所有的東西...

解析具有跳躍......那麼,關於cloudkit?

let container = CKContainer.defaultContainer() 
 
    let database = container.publicCloudDatabase 
 
//count number or records on my database 
 
    let predicate = NSPredicate(value: true) 
 
    let query = CKQuery(recordType: "Products", predicate: predicate) 
 
    query.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)] 
 
    database.performQuery(query, inZoneWithID: nil, completionHandler: { 
 
     (results, error) -> Void in 
 
     if error != nil { 
 
      return 
 
     } else { 
 
      let limit = 10 
 
      let APIrequests: Int = ((Int((results?.count)!) + limit - 1))/limit 
 
      print("\(APIrequests)") // number of requests we need 
 
      print(results?.count) 
 
     } 
 
    })

回答

0

CloudKit沒有一個CKQuery內處理這個邏輯,你可能期望(如PFQuery一樣)。

CloudKit使用CKQueryCursor類處理分頁。 您必須直接使用實例化CKQueryOperation才能使用queryCursors。

當您執行CKQueryOperation時,在queryCompletionBlock中,您必須保存/緩存queryCursor。

當您需要另一頁數據時,請使用initWithCursor創建另一個CKQueryOperation,並傳遞您從上次查詢中保存的緩存queryCursor。

+0

感謝您的回答,我也已經是你的第一部分回答與CKQueryCursor和CKQueryOperation,但對於保存和緩存查詢光標,這是新的我,我怎麼能做到這一點,我想只是顯示更多的細胞,當我向下滾動,因爲現在我正在帶來每條記錄,但我不想要:S –

+0

如果您希望調用「queryCursor」或任何可讓您使用此遊標的位置,則可以在ViewController上創建屬性可用於下一個查詢。在queryCompletionBlock中,使用此遊標設置屬性。當用戶滾動到表格底部時,使用initWithCursor創建一個新查詢,然後繼續重複此過程。 – DBoyer

+0

但是,當我想要顯示更多單元格時,光標將如何知道我想要顯示記錄編號11至20? (因爲我的限制將在第一批中爲10) –