我在所有ViewController
中都有一个MSSyncTable* table
实例变量。目前,我直接从服务器获取数据并使用pullWithQuery
函数填充此table
。
- (void)syncTableData:(ESCompletionBlock)completion
{
MSQuery *query = [self.table query];
// Pulls data from the remote server into the local table.
// We're pulling all items
[self.table pullWithQuery:query queryId:@"EventTable" completion:^(NSError *error) {
[self logErrorIfNotNil:error];
// Let the caller know that we finished
dispatch_async(dispatch_get_main_queue(),completion );
}];
我想改变这种方法,并用从我的core data
获取的数据填充table
。我已经用我需要在屏幕上显示的数据填充了核心数据。
如何使table
从核心数据获取数据?
pullWithQuery 调用的重点是从远程 Azure 应用服务中提取数据,以存储在核心数据中。 执行此操作后,标准表调用将改用核心数据。
有关离线同步的教程,请参阅以下内容:https://learn.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-ios-get-started-offline-data
当你打电话时
-(void)readWithPredicate:(NSPredicate *)predicate completion:(MSReadQueryBlock)completion
或
-(void)readWithId:(NSString *)itemId completion:(MSItemBlock)completion
或
-(void)readWithCompletion:(MSReadQueryBlock)completion
MSSyncTable* table
,这将查询同步表的本地核心数据副本,并在完成块中返回结果。您可能还需要为本地核心数据存储创建自己的 NSManagedObjectContext,以便将项目作为 NSManagedObjects 获取,但请确保通过 MSSyncTable 对对象进行任何更改。