首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当设备脱机时CKQueryOperation不返回错误

当设备脱机时CKQueryOperation不返回错误
EN

Stack Overflow用户
提问于 2016-03-26 00:02:00
回答 1查看 679关注 0票数 15

我试图在我的CKQueryOperation数据库中使用performQuery,而不是performQuery

两者都能工作,但当使用CKQueryOperation时,当设备脱机时,我不会收到错误,但在使用performQuery时会出错。

下面是我的performQuery示例,数据库是我的CKDatabase

代码语言:javascript
复制
database.performQuery(q, inZoneWithID: nil) { (records:[CKRecord]?, error:NSError?) in
    if error != nil {
        print(error!.localizedDescription)
        return
    }
}

当设备脱机时会出现错误,允许我提示用户。错误是

The internet connection appears to be offline

然而,当我使用CKQueryOperation时,我没有错误

代码语言:javascript
复制
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?) in
    // not called without network connection - doesn't enter scope
    print(cursor)
    print(error)
}

database.addOperation(queryOperation)

通过连接,我将接收两个方法的数据,因此它可以正常工作。

在使用CKQueryOperation时,我是如何/哪里被告知错误的?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-11 12:12:20

和往常一样,我发了一个赏金,然后在一两个小时内找到了答案。我不知道我最初是怎么错过this的,但它包含了我正在寻找的答案。

因此,通过添加这一行

代码语言:javascript
复制
queryOperation.qualityOfService = .UserInitiated

一些幕后的变化,我们有一些很好的行动

代码语言:javascript
复制
queryOperation.queryCompletionBlock = { (cursor: CKQueryCursor?, error: NSError?) in
    // We get an error message... Finally !!
    print(error)
}

在Apple中也找不到任何提示。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36230005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档