我尝试更改 Azure 服务器中的客户端页面大小 默认是 50,我想把它调大 所以我在这个链接中使用微软教程 https://learn.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)
}
}
出现错误“‘MSTable’类型的值?”没有成员“pullWithQuery””
问题是什么? 函数名变了吗?
最佳答案
两个问题:
- 当前版本的 Swift 文档尚未更新 (已提交更新请求)。现代 Swift 中正确的函数名称是 pull 而不是 pullWithQuery。
- pullWithQuery 函数位于 MSSyncTable 上,而不是 MSTable 上。 Pull 是离线同步系统的一部分。读取 MSTable 模拟。
更多详细信息:
SDK本身将该函数定义为MSSyncTable.pullWithQuery ,但 Swift 3.0 的功能之一是,当将 Objective C 方法投影到 Swift 中时,它会重命名它们,以删除名称中的冗余参数,因此 verbWithX(X) 变为 verb(with:x),而 pullWithQuery (MSQuery) 变为 pull (使用:MSQuery)。
有关 Swift 3 更改的更多信息,请参阅 https://swift.org/blog/swift-3-0-released/ 。我相信这个特殊的变化是 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)
关于swift - 类型 'MSTable?' 的值没有成员 'pullWithQuery',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48627724/