有一个云函数

AV.Cloud.define('testCreateTemp', function(request, response) {
    AV.Object.new('Temp').save().then(function(e) {
        response.success({'obj': e});
    }, function(e) {
        response.error(e);
    });
});

然后在iOS端调用此函数后,返回的NSDictionary中,键'obj'的值是一个NSDictionary,而不是AVObject。
请问我如何获得这个Temp 类的 AVObject?

(上述问题只是举个例子,我当然知道可以直接在SDK中创建然后Save;我是想问如果调用云函数创建了一个对象,怎么样返回给客户端)

[AVObject objectWithDictionary:] 可以满足你的要求。

不可以的。这个dictionary中有createdAt 和updatedAt等键,而objectWithDictionary: 不允许提供的参数中有这些键(否则会扔出异常)。

若只需要指针/Pointer,可以通过云代码,返回 创建的对象 的id,然后在 iOS,新建一个 AVObject,然后设置其id为返回值。
若需要所有数据,则需要通过云代码,返回 创建的对象 的id,然后在 iOS,然后一下2选1
1,新建一个 AVObject,然后设置其id为返回值,然后Fetch一次。
2,新建 对应Class 的query,通过id get 一下

嗯……但是整个point就在于我只是一个function可以获得所有数据,不需要重新去fetch……其实没问题了,我现在改成用 objectAtIndexSubscript: 来获取,而这个方法在NSDictionary和在AVObject中都有的。

我们接下来会支持云代码调用直接返回反序列化对象的支持,已经在开发日程上面了。

+1,非常需要这个功能

新版 SDK 已经支持了,可以在 AVCloud.h 头文件中找到,所有以 rpc 打头的方法都支持这种调用形式。文档尽快补上。

您的意思是可以直接用云函数返回对象而不是json?

想问下,云函数支持cache功能吗?