首页 > 解决方案 > 如何在云函数中初始化 ParseObject?

问题描述

我想ParseObject根据我从中获得的缓存数据生成一个 s列表Redis。这就是我正在做的事情:

function parseHashtagsResponse(cachedObjects) {
    var hashtags = [];

    for (const object of cachedObjects) {
        const Hashtag = Parse.Object.extend("Hashtag");
        const hashtag = new Hashtag();

        for (var key in object) {
            if (object.hasOwnProperty(key)) {
                hashtag.set(key, object[key]);
            }
        }

        hashtags.push(hashtag);
    }

    return hashtags;
}

cachedObjects是一个字典数组,包含缓存ParseObjects的数据

这是我在客户端上获取上述处理数据的操作:

PFCloud.callFunction(inBackground: "getHashtagsFunctionV3", withParameters: nil) { (response, error) in
    if error == nil, let hashtagsArray = response as? [PFObject] {
        self.hashtagsArray.append(contentsOf: hashtagsArray)
    }
}

当我收到回复时,我得到了这个:

表达式产生错误:错误:/var/folders/1h/vqb7yf6n14d52q7zdmgbx3lr0000gn/T/expr30-d84d97..swift:1:83:错误:'PFObject'不是'Parse' Swift._DebuggerSupport.stringForPrintObject(Swift. UnsafePointer<Swift.Array<Parse.PFObject>>(bitPattern: 0x11e0e08f0)!.pointee)

如果我打印返回数组的一个元素,我会得到:

<标签:0x60000331d320,objectId:hLuDPG45CI,localId:(null)> {}

我错过了什么?

标签: swiftparse-serverparse-javascript-sdk

解决方案


原来有一个Parse.Object名为的类的静态函数fromJSON。它所做的正是我所需要的……它ParseObject基于 JSON 的数据构造了一个!

这是更新的功能:

function parseResponse(cachedObjects, className) {
    var hashtags = [];

    for (var object of cachedObjects) {
        object.className = className;
        hashtags.push(Parse.Object.fromJSON(object));
    }

    return hashtags;
}

推荐阅读