我正在尝试使用CKQueryOperation,而不是performQuery在我的CloudKit数据库上.
两者都有效,但是当使用CKQueryOperation时,我在设备离线时没有收到错误,但是在使用时我没有收到错误 performQuery
这是我的performQuery例子,数据库是我的CKDatabase
database.performQuery(q, inZoneWithID: nil) { (records:[CKRecord]?, error:NSError?) in
if error != nil {
print(error!.localizedDescription)
return
}
}
Run Code Online (Sandbox Code Playgroud)
设备离线时会出现错误,允许我提示用户.错误是
The internet connection appears to be offline
但是,当我使用a时,我没有错误 CKQueryOperation
let p = NSPredicate(format:"recordID IN %@", student.courses)
let q = CKQuery(recordType: String(Course), predicate: p)
let queryOperation = CKQueryOperation(query: q)
queryOperation.recordFetchedBlock = { record in
// not called without network connection - doesn't enter scope
print(record)
}
queryOperation.queryCompletionBlock = { (cursor: CKQueryCursor?, error: NSError?) …Run Code Online (Sandbox Code Playgroud) 我正在开发一个带有xcode 7 beta 5的应用程序.当我在iphone 6上运行我的应用程序时,如果我的iphone在wifi模式下工作,我尝试将其连接到CloudKit,所有这些都可以,我显示所有数据; 但如果我的iphone在LTE模式下工作,我看不到任何类型的数据.有谁知道如何做到这一点?
func getRecordsFromCloud() {
lavori = []
/
let _cloudContainer = CKContainer.defaultContainer()
let publicDatabase = CKContainer.defaultContainer().publicCloudDatabase
/
let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "Lavori", predicate: predicate)
/
let queryOperation = CKQueryOperation(query: query)
queryOperation.desiredKeys = ["image","name"]
queryOperation.queuePriority = .VeryHigh
queryOperation.resultsLimit = 50
queryOperation.recordFetchedBlock = { (record:CKRecord) -> Void in
let lavoriRecord = record
self.lavori.append(lavoriRecord)
}
queryOperation.queryCompletionBlock = { (cursor:CKQueryCursor?, error:NSError?) -> Void in
if (error != nil) {
print("Failed to get data from …Run Code Online (Sandbox Code Playgroud)