使用 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.com PHP SDK ParseFile Image 403 Forbidden
Parse.com 云代码 afterSave() 错误:“未捕获尝试使用指向新的未保存对象的指针保存对象。”