类的解析列值始终为零
Posted
技术标签:
【中文标题】类的解析列值始终为零【英文标题】:Parse column value of class is always nil 【发布时间】:2015-11-18 05:23:59 【问题描述】:使用查询获取对象时,仅获取某些列,其余列为零。我也尝试过fetchIfNeededInBackgroundWithBlock
,但没有成功。
查询:
let query = PFQuery(className:"Order")
query.whereKey("buyerUser", equalTo: PFUser.currentUser()!)
query.findObjectsInBackgroundWithBlock (orders: [PFObject]?, error: NSError?) -> Void in
if(error == nil)
print(orders?.first)
输出:
Optional(<Order: 0x7ff778011940, objectId: KytyBZD9zV, localId: (null)>
buyerUser = "<PFUser: 0x7ff77353e520, objectId: xxxxx, localId: (null)>";
charged = 1;
fulfilled = 0;
item = "<Item: 0x7ff778011dd0, objectId: GN277W4mO0, localId: (null)>";
shippingUser = "<PFUser: 0x7ff778012270, objectId: xxxx, localId: (null)>";
stripePaymentId = "xxxxxx";)
解析数据浏览器中的Order
类
如果我尝试使用以下代码访问transactionId
:
let order = orders?.first
print(order.objectForKey("transactionId"))
结果总是nil
。
请帮忙。
更新
附件是 Parse 中的Order
类数据。由于所有行都有数据,并且我使用的对象在其他列(buyerUser,收费)中返回了一些数据,因此对象的transactionId
列中有数据。
【问题讨论】:
@sushithe 解析数据浏览器中有transactionId的数据吗?还是现在是一个空列 @Sushilthe,你能测试一下这个print(order["transactionId"])
吗?我认为问题在于您正在将 PFObject
类对象作为字典处理。
@KelvinLau 查看他对 Girish Kolari 回答的评论。
如果您可以共享名为 Orders 的解析类的结构,这将很有帮助。因为在打印 PFObject 时,我在您的共享日志中看不到 transactionId 的任何内容。
我不想证明任何事情,我只是根据您提供的数据进行评估。您确实要求社区成员提供帮助,对吗?当然,除非我弄错了。如果您绝对确定 this object 列中肯定有数据,那么请解释为什么 Parse 没有将它与对象一起返回?而且我不知道当我根据您提供的非常有限的数据提高合法分数时,您为什么要采取这种语气。如果您确定事务不为零,请在数据浏览器中向我们显示此对象,我们都会感到满意。
【参考方案1】:
我在您发布的控制台消息中看不到“transactionId” - 如果您要查找的密钥不存在,它将返回 nil
充电 = 1;完成 = 0;项目 = "";运输用户 = ""; stripePaymentId = "xxxxxx";)
更新: 控制台中的服务器信息和消息不匹配 eq: Order: 0x7fb253fedc80, objectId: WrgiDFxZW6 无法在问题附加的服务器数据中找到。
如果您在 Parse SDK 中引用的表与您在 Web 中使用的表不同(屏幕截图),则可能会发生这种情况 - 请确保您在代码和 Web 中引用相同的表。
【讨论】:
问题是,当列存在于 Parse Data Browser 中时,我看不到控制台中的键。 存在列并不意味着它也必然包含数据,除非您已经完成了完整完美的表单验证并编写了一些云代码来拒绝具有零交易 ID 的条目。 Grish Kolari 是对的,它不在您的日志中。以上是关于类的解析列值始终为零的主要内容,如果未能解决你的问题,请参考以下文章