'MSTable?' 类型的值没有成员 'pullWithQuery'

Value of type 'MSTable?' has no member 'pullWithQuery'

我尝试更改 Azure 服务器中的客户端页面大小 它的默认值是 50,我想把它变大 所以我在此 link 中使用 Microsoft 教程 https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-ios-how-to-use-client-library#querying

var client : MSClient?
let client = MSClient(applicationURLString: "AppUrl")
let table = client.tableWithName("TodoItem")
let query = table.query()
let pullSettings = MSPullSettings(pageSize: 3000)
but when I write 
table.pullWithQuery(query, queryId:nil, settings: pullSettings) { (error) in
    if let err = error {
        print("ERROR ", err)
    }
}

有错误"Value of type 'MSTable?' has no member 'pullWithQuery'"

有什么问题吗? 函数名称是否已更改?

两个问题:

  1. Swift 当前版本的文档尚未更新 (已提交更新请求)。现代 Swift 中正确的函数名称是 pull 而不是 pullWithQuery。
  2. pullWithQuery 函数在 MSSyncTable 上,而不是 MSTable。 Pull 是离线同步系统的一部分。读取 MSTable 模拟。

更多详情:

SDK本身将函数定义为MSSyncTable.pullWithQuery,但Swift 3.0的功能之一是在将Objective C方法投影到Swift时重命名它们从名称中删除多余的参数,因此 verbWithX(X) 变为 verb(with:x) 并且 pullWithQuery (MSQuery) 变为 pull(with:MSQuery).

有关 Swift 3 项更改的更多信息,请参阅 https://swift.org/blog/swift-3-0-released/ . I believe this particular change is SE-0005: Better Translation of Objective-C APIs Into Swift

如果您从 Azure 门户下载 Swift 快速入门,那么您将在那里获得正确的现代模式:

self.table!.pull(with: self.table?.query(), queryId: "AllRecords") 

或者你的论点:

self.table!.pull(with: self.table?.query(), queryId: nil, settings: pullSettings)