网络环境

wifi

LeanCloud SDK版本

iOS SDK:v3.2.9

相关代码

var todos = request.params.todos;
console.log(todos);   
//2-1-3-1-1. 提交待办事项
AV.Object.saveAll(todos).then(function (avobjs) {
   ...
}, function (error) {
   ...
});

相关日志

这个打印的是参数中的 AVObject 对象
太难看了...我都分不清哪儿是啥对象,将就看吧

局部错误日志

相关截图

报错了之后,还在数据库中插入了对应对象数量的空数据。。。

todo is not defined 这个是 JavaScript 引擎报的语法错误,建议检查代码,如果仍未解决请贴一下相关代码。

这次没有报错,代码顺利运行,但是数据还是没有保存下来,只插入了一条空数据。

云函数代码

这是我定义的云函数,上次只截取了片段,这次是完整代码。

    var todos = request.params.todos;
    var syncRecordId = request.params.syncRecordId;
    console.log(todos);
    // 2-1-3-1-1. 提交待办事项
    AV.Object.saveAll(todos).then(function (avobjs) {
        var query = new AV.Query('SyncRecord');
        // 2-1-3-1-2. 获取同步记录
        query.get(syncRecordId).then(function (syncRecord) {
            syncRecord.set('isFinished', true);
            syncRecord.set('syncEndTime', new Date());
            // 2-1-3-1-3. 修改同步记录
            syncRecord.save().then(function () {
                response.success(syncRecord);
            }, function (error) {
                response.error('2-1-3-1-3 ::: ' + error);
            });
        }, function (error) {
            response.error('2-1-3-1-2 ::: ' + error);
        });
    }, function (error) {
        response.error('2-1-3-1-1 ::: ' + error);
    });

SDK调用代码

NSError* error = nil;
NSDictionary* commitTodoParameters = @{ @"todos" : todosReadyToUpload, @"syncRecordId" : syncRecord.objectId };
NSDictionary* syncRecordDictionary = [AVCloud rpcFunction:@"commitTodos2" withParameters:commitTodoParameters error:&error];
if (error) return [weakSelf.errorHandler returnWithError:error description:@"2-1-3-1. 上传数据失败" returnWithBlock:complete];

相关日志

我把日志打印出来的数组对象格式化了一下,是有数据的:

[
    {
        _serverData: {
            deadline: ThuJun09201615: 45: 00GMT+0800(CST),
            syncStatus: 0,
            isCompleted: false,
            localCreatedAt: TueJun07201614: 35: 01GMT+0800(CST),
            cellHeight: 0,
            isHidden: false,
            localUpdatedAt: TueJun07201614: 35: 01GMT+0800(CST),
            location: '',
            title: 'jjjjjjj',
            isReordering: false,
            sgDescription: '',
            user: [
                Object
            ],
            status: 0,
            syncVersion: 0
        },
        _opSetQueue: [
            {
                
            }
        ],
        attributes: {
            deadline: ThuJun09201615: 45: 00GMT+0800(CST),
            syncStatus: 0,
            isCompleted: false,
            localCreatedAt: TueJun07201614: 35: 01GMT+0800(CST),
            cellHeight: 0,
            isHidden: false,
            localUpdatedAt: TueJun07201614: 35: 01GMT+0800(CST),
            location: '',
            title: 'jjjjjjj',
            isReordering: false,
            sgDescription: '',
            user: [
                Object
            ],
            status: 0,
            syncVersion: 0
        },
        _hashedJSON: {
            deadline: '"2016-06-09T07:45:00.000Z"',
            localCreatedAt: '"2016-06-07T06:35:01.437Z"',
            localUpdatedAt: '"2016-06-07T06:35:01.437Z"'
        },
        _escapedAttributes: {
            
        },
        cid: 'c5',
        changed: {
            
        },
        _silent: {
            
        },
        _pending: {
            
        },
        _hasData: true,
        _previousAttributes: {
            
        }
    }
]

你是指在客户端对 todos 的修改没有被保存么?我们是不支持在云函数中保存在客户端中所做的修改的。

好吧...我以为 RPC 就是干这个事情的...

我现在是传字典上来转换再进行保存,谢谢回复。