无法获得Parse.com专栏的价值

时间:2015-12-18 10:08:48

标签: ios swift parse-platform

这是我遇到过的最疯狂的错误。我试图从Orders表中名为nameRetailer的列中获取值,但它一直变为零。

正确返回相同String类型的其他列,包括下面显示的status列。

有什么可能导致这种情况?拼写肯定是正确的。请帮帮....

 let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd"
        let date = object?.objectForKey("dueDate") as! NSDate
        let strDate = dateFormatter.stringFromDate(date)

        cell.retailerName.text = object?.objectForKey("nameRetailer") as? String
        cell.orderDueDate.text = strDate
        cell.orderStatus.text = object?.objectForKey("status") as? String

当我尝试打印对象的值?.objectForKey(“nameRetailer”)时,它在控制台中显示为nil。在解析数据浏览器中,列包含数据并已刷新。

enter image description here

更新:添加其他代码:

负责表视图的整个类代码:

class OrderViewController: PFQueryTableViewController {
    override func queryForTable() -> PFQuery {
        let query = PFQuery(className: "Orders")
        query.cachePolicy = .CacheElseNetwork
        query.orderByAscending("createdAt")
        return query
    }

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? {
        let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! OrdersTableViewCell


        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd"
        let date = object?.objectForKey("dueDate") as! NSDate
        let strDate = dateFormatter.stringFromDate(date)

        cell.retailerName.text = object?.objectForKey("nameRetailer") as? String
        cell.orderDueDate.text = strDate
        cell.orderStatus.text = object?.objectForKey("status") as? String

        print(object)

        //let imageFile = object?.objectForKey("image") as PFFile
        //cell.cellImageView.image = UIImage(named:"placeholder") 
        //cell.cellImageView.file = imageFile
        //cell.cellImageView.loadInBackground()
        return cell
    }

    override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        if indexPath.row + 1 > self.objects?.count
        {
            return 44
        }

        let height = super.tableView(tableView, heightForRowAtIndexPath: indexPath)
        return height
    }


    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        if indexPath.row + 1 > self.objects?.count
        {
            self.loadNextPage()
            tableView.deselectRowAtIndexPath(indexPath, animated: true)
            self.performSegueWithIdentifier("showDetail", sender: self)
        }
    }

订单表的图像:

enter image description here

这是打印PFObject的日志快照:

enter image description here

这是显示两行的更新快照

enter image description here

1 个答案:

答案 0 :(得分:3)

您已将缓存策略设置为首先在本地缓存中查找数据,这可能是陈旧的。

变化:

    query.cachePolicy = .CacheElseNetwork

    query.cachePolicy = .NetworkOnly // ignores cache on reading, but saves to cache

    query.cachePolicy = .IgnoreCache // no cache at all -- this is the default

(或基于您的特定背景和用例的其他适当值)

相关问题