从服务器获取用户 uid 列表后,我需要更新大量具有相同值的用户对象。服务器返回一个用户 ID 数组,如下所示:
{
"ids": [1, 2, 3, 4]
}
这里可以有 100 多个 id(本地用户表包含 2k+ 条记录),所以我正在寻找尽可能有效的方法。首先,我需要将已经 isOpened 的值设置为 0。在 SQL 术语中,我需要执行以下操作:
UPDATE users SET isClosed = 0 WHERE isClosed = 1
UPDATE users SET isClosed = 1 WHERE userId IN (1, 2, 3, 4)
基本上,当用户长时间未使用该应用程序时,我正在解决一个问题,以批量更新 isClosed 属性。
现在,到了服务器获取和“映射”部分的问题。我不知道如何在不将响应映射到对象的情况下执行正确的 restkit 请求......请告知是否有更合适的方法来执行此操作......所以我正在做一个基本的 restkit/afnetworking 获取请求:
[[[RKObjectManager sharedManager] HTTPClient] getPath:[NSString stringWithFormat:@"/api/%@/closeUsers", [[MyCredentialStore sharedInstance] userId]]
parameters:nil
success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSArray *userIDs = [responseObject objectForKey:@"ids"];
NSLog(@"%@", userIDs);
// 1. set the default value for isClosed (0) for all users
// 2. update the users with userIDs to isClosed = 1
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// response code is in operation.response.statusCode
}];
现在我该怎么做 1. 和 2. 在成功块中?还是有像这样进行批量更新的适当的restkit方式?