类的解析列值总是为零

Sus*_*hil 7 ios parse-platform swift

在使用查询获取对象时,仅获取某些列,其余列为nil.我也试过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)
    }
}
Run Code Online (Sandbox Code Playgroud)

输出:

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";})
Run Code Online (Sandbox Code Playgroud)

Order Parse数据浏览器中的类

订单类

如果我尝试transactionId使用以下代码访问:

let order = orders?.first
print(order.objectForKey("transactionId"))
Run Code Online (Sandbox Code Playgroud)

结果总是如此nil.

请帮忙.

更新

附件是OrderParse中的类数据.由于所有行都有数据,而我使用的对象在其他列(buyerUser,charge)中返回了一些数据transactionId,因此对象列中有数据.

解析订单类数据

Gir*_*ari 4

我在您发布的控制台消息中看不到“transactionId” - 如果您正在寻找的密钥不存在,它将返回 nil

带电 = 1;已完成 = 0;项目=“”;运输用户=“”;stripePaymentId =“xxxxxx”;})

更新:服务器信息和控制台中的消息不匹配 eq: Order: 0x7fb253fedc80, objectId: WrgiDFxZW6 无法在问题所附的服务器数据中找到。

如果您在 Parse SDK 中引用的表与您在 Web 中使用的表(屏幕截图)不同,则可能会发生这种情况 - 确保您在代码和 Web 中引用相同的表。

  • 列的存在并不意味着它也必然包含数据,除非您已经完成了完整、完美的表单验证并编写了一些云代码来拒绝事务 ID 为 nil 的条目。Grish Kolari 是对的,它不在你的日志中。 (2认同)