【问题标题】:Unable to parse updatedAt and createdAt fields无法解析 updatedAt 和 createdAt 字段
【发布时间】:2015-09-14 16:20:21
【问题描述】:

当解析对象作为云代码方法的响应发送时,当 Parse iOS SDK 尝试将 createdAt 和 updatedAt 字段转换为 NSDate 时,我得到一个日期字符串解析异常。这些日期必须以“2015-09-14T15:18:01.521Z”格式表示,但它们从云代码中以“2015-09-14 15:18:03 +0000”格式返回。 Parse iOS SDK 无法解析它们并抛出异常。 我该如何解决这个问题?

云代码:

 Parse.Cloud.define("defineFollowers", function(request, response) {
        var query = new Parse.Query(Parse.User);
        query.equalTo("name", "Test");
        query.find({
            success: function(persons) {
                response.success(persons);
            }
        });
 });

客户端代码:

 [PFCloud callFunctionInBackground:@"defineFollowers"
                       withParameters:@{}
                                block:^(NSArray *results, NSError *error) {
       if (!error) {
         // do something
       }
 }];

【问题讨论】:

  • 你可能想发布一个代码示例来展示你到目前为止所拥有的东西,以便其他人可以建议修复而不是为你编写函数:)

标签: ios parse-platform parse-cloud-code


【解决方案1】:

时间应该可以正常转换为 NSDates,但如果不是,请使用NSDateFormatter to ensure the date is interpreted correctly

另外,请注意,通过在云函数中调用查询,您正在向 API 限制添加另一个 API 请求 - 一个用于调用云函数,另一个用于查询。

除非您在云功能中执行额外的逻辑,否则最好直接从客户端查询。

【讨论】:

  • 问题是Parse-iOS-sdk解析服务器发送的结果数据。而且我无法控制这个过程或自己进行解析。
  • 我不确定我明白你在说什么。 Parse SDK 基本上是一堆 REST API 调用的包装器。您仍然负责处理查询结果或您希望实现的任何其他逻辑。
  • Parse SDK 也有自己的方法和扩展来序列化从服务器接收的数据。因此它从服务器接收数据,将其转换为 JSON 字典,然后尝试将日期字符串(例如 2015-09-14 15:18:03 +0000)转换为 NSDate 对象。但是它自己的日期格式化程序类不支持这种格式,并且在转换过程中会抛出异常。
  • 听起来这是一个应该向 Parse 团队报告的错误,以便他们确保 SDK 正确解释数据
猜你喜欢
  • 1970-01-01
  • 2018-01-07
  • 2018-02-13
  • 1970-01-01
  • 2019-07-19
  • 1970-01-01
  • 1970-01-01
  • 2019-12-28
  • 1970-01-01
相关资源
最近更新 更多