2015-12-18 69 views
3

这是我遇到过的最疯狂的错误。我正在尝试从Orders表中名为nameRetailer的列中获取值,但它始终为零。无法获得Parse.com列的价值

相同字符串类型的其他列正在返回正确,包括如下所示的状态列。

可能导致这种情况的原因是什么?拼写当然是正确的。请帮助....

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”),它显示在控制台为零。在解析数据浏览器中,列有数据并被刷新。

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

a ND这里是打印PFObject的日志快照:

enter image description here

这里是显示两行更新的快照

enter image description here

+0

两行名字不一定意味着整列将有零售商名称。向我们展示数据浏览器中的对象,零售商名称返回零。 – NSNoob

+0

只有2行,每条记录有多个列,其中一个是上面显示的nameRetailer。如何显示状态栏以及除此之外的其他所有内容? –

+0

当您打印PFObject时,您能看到零售商的名字吗? – NSNoob

回答

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 

(或根据您的具体情况和使用情况等适当的值),其具有零售商