我使用Azure移动服务作为我的应用后端。我正在尝试同步Azure演示“TodoItem”中提到的数据。所有工作正常但只有数据不会从远程服务器中提取。
我正在使用自定义API(invokeAPI方法。)
这是我的代码:
[self syncData: ^
{
// Let the caller know that we finished
if (completion != nil) {
dispatch_async(dispatch_get_main_queue(), completion);
}
}];
-(void)syncData:(QSCompletionBlock)completion
{
// push all changes in the sync context, then pull new data
[self.client.syncContext pushWithCompletion:^(NSError *error) {
[self logErrorIfNotNil:error];
[self pullData:completion];
}];
}
-(void)pullData:(QSCompletionBlock)completion
{
// Pulls data from the remote server into the local table.
// We're pulling all items and filtering in the view
// query ID is used for incremental sync
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"complete == NO"];
MSQuery *query = [self.syncTable queryWithPredicate:predicate];
[self.syncTable pullWithQuery:query queryId:nil completion:^(NSError *error) {
[self logErrorIfNotNil:error];
// Let the caller know that we have finished
if (completion != nil) {
dispatch_async(dispatch_get_main_queue(), completion);
}
}];
}
此处没有任何内容从服务器保存到本地数据库。
答案 0 :(得分:0)
不要将queryId传递为nil。
将一些字符串传递给它,如下所示。
[self.syncTable pullWithQuery:query queryId:@" allitems"完成:^(NSError * error){ }