使用 Parse SDK 保存新对象时如何获取 createdAt 属性?

Posted

技术标签:

【中文标题】使用 Parse SDK 保存新对象时如何获取 createdAt 属性?【英文标题】:How to get createdAt property when saving a new object using Parse SDK? 【发布时间】:2020-08-18 21:33:18 【问题描述】:

我正在创建一个新对象,出于某种原因,我需要获取完整保存的对象,包括 createdAt 和 updatedAt 属性。

在这段代码中,我正在保存新对象。

        let msg = PFObject(className: "ChatMessage")
        msg["User"] = user
        msg["Message"] = message
        msg["Topic"] = topic
        //messageList.append(message)
        msg.saveInBackground  (success, error) in
            if error == nil 
                //msg.createdAt is nil
            
        

如何在不进行其他查询的情况下获取完整保存的对象?

编辑

这是变量值

我可以看到“createdAt”值在“_pfinternal_state”对象中可用,但在“_estimatedData”中不可用。

有什么方法可以访问 _pfinternal_state._createdAt 吗?

谢谢

【问题讨论】:

您的msg 对象应该已经在您的回调内部/之后自动设置了这些属性。 @DaviMacêdo 它具有除 createdAt 和 updatedAt 之外的所有属性。 你能仔细检查一下成功变量是否为真吗? @DaviMacêdo 感谢您的回复,我更新了问题。成功值为真 【参考方案1】:

我花了很多时间为这个小问题寻找解决方案。

你可以很简单。通过调用 "value(forKey:..." 函数​​获取 createdAt 和 updatedAt 值并将返回的值转换为 NSDate,如下代码:

        let msg = PFObject(className: "ChatMessage")
        msg["User"] = user
        msg["Message"] = message
        msg["Topic"] = topic
        //messageList.append(message)
        msg.saveInBackground  (success, error) in
            if error == nil 
                //msg.createdAt is nil
                let createdAt = msg.value(forKey: "createdAt") as! NSDate 
                // this will return the NSDate object. 
                //   You must cast it to NSDate not Date

            
        

【讨论】:

感谢分享,但应该有更简单的方法。这可能是 SDK 中的错误。您介意在Parse ios SDK repository 中打开一个问题吗? @DaviMacêdo 绝对。谢谢

以上是关于使用 Parse SDK 保存新对象时如何获取 createdAt 属性?的主要内容,如果未能解决你的问题,请参考以下文章

在 Parse SDK Android 中使用未保存的 id null 固定对象查询本地数据存储

如何使用Parse JS SDK查询过去7天的对象?

Parse.com PHP SDK ParseFile Image 403 Forbidden

Parse.com 云代码 afterSave() 错误:“未捕获尝试使用指向新的未保存对象的指针保存对象。”

如何在 AppDelegate 中使用 Parse 正确设置 Facebook iOS SDK?

parse.com - 如何使用 PHP SDK 从 parse.com 查询和获取类似数组的 json?