Parse.com - 从云代码函数返回多个值

Posted

技术标签:

【中文标题】Parse.com - 从云代码函数返回多个值【英文标题】:Parse.com - Returning multiple values from a Cloud Code function 【发布时间】:2015-08-24 18:28:13 【问题描述】:

我正在尝试创建一个返回多个值的云代码函数。现在我正在做的是

response.success(val1 : scores1, val2: scores2);

根据云代码日志,一切进展顺利。但是我不知道当我在我的 Swift 代码中处理函数时我应该转换什么样的对象。

    PFCloud.callFunctionInBackground("myFunction", withParameters: ["value" : 1)  (object:AnyObject?, error:NSError?) -> Void in
       //what I should cast object for
    

我也有一个想法,我认为这可能是一种错误的方法,因为我基本上是在尝试找到与 javascript 对象等效的 Swift。如果是这样,还有其他方法可以从 Cloud Code 函数返回多个值吗?

当我打印对象时,我的控制台日志中有以下内容。

Optional(
poetry = 1;
rap = 9;
)

【问题讨论】:

相当于 JSON 的 Swift 是字典...请执行 NSLog("(object)") 并在此处发布输出...比我可以说你如何转换这个对象 用所需信息更新了问题g 好吧,谢谢,我知道了,我需要将其转换为 Dictionary<String, Int>。我会接受它作为答案,只需发布​​它。 是的,就是这样 :-) 我已经向您发布了正确的代码以及如何访问值作为答案... 【参考方案1】:

好的,那么您的 Object 是 Dictionary Optional... 您可以使用此代码:

if let responseJSON: [String: Int] = object as? [String: Int] 
      let poetryValue: Int = object["poetry"] as Int
      let rapValue: Int = object["rap"] as Int

【讨论】:

【参考方案2】:

只需返回一个对象,该对象具有每个返回值的属性或一组值或一个字典(或任何漂浮的东西;))并在客户端反序列化它。这样,您只有一个返回值,其中包含您需要方便地按摩到对象/列表/字典/任何东西中的所有数据......

PFCloud.callFunctionInBackground("myFunction", withParameters: ["value" : 1)  (object:AnyObject?, error:NSError?) -> Void in
    if let values = object as! [String:Int] 
    // Do something
    

应该工作

【讨论】:

我已经在这行中这样做了response.success(val1 : scores1, val2: scores2);我不知道如何去实现它。

以上是关于Parse.com - 从云代码函数返回多个值的主要内容,如果未能解决你的问题,请参考以下文章

无法从云形成 yaml 中的条件函数返回整数

预期返回“布尔”parse.com 推送通知的函数中缺少返回

通过云函数从云存储中读取数据

云函数可以从云存储中读取吗?

百度Apollo 5G云代驾企业版首发,四大创新优势三大应用场景

Swift - parse.com 的变量范围问题