swift - 如何在云函数中初始化 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
是一个字典数组,包含缓存ParseObject
s的数据
这是我在客户端上获取上述处理数据的操作:
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)> {}
我错过了什么?
解决方案
原来有一个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;
}
推荐阅读
- python - 过滤数据框单元格中包含的数据框列表值
- xamarin - 如何在导航到新视图模型时传递参数和设置属性 (initializeAsync)
- eclipse - 无法使用 Eclipse 插件连接到 Azure Devops
- excel - 我的第二个子在第一个子中调用时不起作用,但如果单独启动则可以
- ruby-on-rails - Rails 5 以不保存数据的形式使用全局方法
- apache-spark - 为什么火花执行器不会死
- javascript - JS 视频加载有时有效,有时未捕获(承诺)DOMException?
- sql-server-2012 - 有没有办法为 NOT EXISTS 子句提供例外?
- javascript - 反应状态组件 - 无法读取未定义的属性“状态”
- cocos2d-js - 为什么浏览器不调用 Cocos Creator 引擎文件?