2014-10-23 1 views
10

CloudKit에서 공개/비공개 항목의 마지막 X 분을 가져 오려고합니다.CloudKit에서 creationDate로 쿼리하는 방법은 무엇입니까?

나는이 효과에 뭔가를 시도했지만 실패

let date = NSDate(timeInterval: -60.0 * 120, sinceDate: NSDate()) 
    let predicate = NSPredicate(format: "creationDate > %@", date) 

을하지만이 나에게 데이터를 얻을 것이다,하지만 난 모든 쿼리하거나 캡의 일종에있어 있는지 확실하지 않습니다 :

let predicate = NSPredicate(value: true) 

일정한 시간까지 쿼리 할 수 ​​있기를 원합니다. 클라이언트 측에서 생성 정렬 논리를 수행하지 않고 이것이 가능합니까?

func fetchPublicData(completion: ((records:[AnyObject]) -> Void)!) 
{ 
    let date = NSDate(timeInterval: -60.0 * 120, sinceDate: NSDate()) 
    let predicate = NSPredicate(format: "creationDate > %@", date) 
    let query = CKQuery(recordType: "MyDataRecordType", predicate: predicate) 

    let container = CKContainer.defaultContainer() 
    let publicDb = container.publicCloudDatabase 

    publicDb.performQuery(query, inZoneWithID: nil, 
    { 
     (results, error) in 

     if error != nil 
     { 
      self.handleError(error) 
     } 
     else 
     { 
      // do stuff 
     } 
    }) 
} 

감사 :

여기에 전체 코드 블록입니다.

+0

별도 :'Date (timeIntervalSinceNow : -60 * 120)'은 사용중인 날짜를 만드는 또 다른 방법입니다. - "120 분 전" – bshirley

답변

18

내 자신의 질문을 알아 냈습니다. CloudKit 대시 보드에 로그인하고이 확인란을 선택해야합니다.

enter image description here

이 확인 일단, 당신과 같이 날짜별로 조회 할 수 있습니다 : https://developer.apple.com/documentation/cloudkit/ckquery#//apple_ref/doc/uid/TP40014043-CH1-SW8

:

가 여기 CloudKit에 사용할 수있는 자 NSPredicate의 어떤 종류의 더 자세한 문서의
let date = NSDate(timeInterval: -60.0 * 120, sinceDate: NSDate()) 
let predicate = NSPredicate(format: "creationDate > %@", date) 

+1

굉장합니다, 게시 해 주셔서 감사합니다! –

+0

덕분에, 나는이 모든 불쾌한 영역 콜백을 피하기 위해 modificationDate 용 타이머에서 CloudKit을 폴링하는 데 사용하지 않을 것을 약속드립니다. –