解析本地数据存储不显示固定数据

Posted

技术标签:

【中文标题】解析本地数据存储不显示固定数据【英文标题】:Parse Local DataStore not showing pinned data 【发布时间】:2015-12-17 18:54:26 【问题描述】:

我已尝试确保在实施 Parse 本地数据存储时遵循所有推荐的步骤,但固定似乎不起作用或查询固定对象不起作用。我尝试了多种选择。下面是我的视图控制器代码,我还在应用程序委托文件中启用了数据存储等(使用基本解析启动项目)。请告诉我问题出在哪里。

我的控制台中的输出 - 我能够从解析服务器获取数据,但要么无法正确固定它或无法正确检索它或其他什么..

 Success 8888 
Optional([])
Push notifications are not supported in the ios Simulator.
success 7777
Optional([<Restaurant: 0x7f98ca521f60, objectId: 0rRZNCndje, localId: (null)> 
    Name = time;
])

感谢您的帮助!

import Foundation
import Parse
import ParseUI
import UIKit
import Foundation

class RestaurantAdmin: ViewController 
    func getDataFromLocalDataStore() 
        var userName = PFUser.currentUser()?.username
        var messages2: [AnyObject]!
        var query2: PFQuery = PFQuery(className: "Restaurant")
        query2.fromLocalDatastore()
        query2.whereKey("Owner", equalTo: userName!)
        query2.findObjectsInBackgroundWithBlock  (objects, error) -> Void in
            if (error == nil) 
                messages2 = objects
                println(" Success 8888 ")
                println(objects)
            
            else 
                println("Fail 8888")
            
        
    

    func refreshRestaurantDataFromServer() 
        var userName = PFUser.currentUser()?.username
        var query = PFQuery(className: "Restaurant")
        query.whereKey("Owner", equalTo: userName!)
        query.selectKeys(["Name"])
        var messages: [AnyObject]!
        query.findObjectsInBackgroundWithBlock  (objects, error) -> Void in
            if (error == nil) 
                PFObject.pinAllInBackground(objects, block: nil)
                println("success 7777")
                println(objects)
            
            else 
                println("error 7777")
            
        
    

    override func viewDidAppear(animated: Bool) 
        super.viewDidAppear(animated)
        if (PFUser.currentUser()?.username != nil) 
            refreshRestaurantDataFromServer()
        
        getDataFromLocalDataStore()
    

【问题讨论】:

【参考方案1】:

由于您使用的是query.selectKeys(["Name"]),因此不会下载整个对象。现在您正在保存这个部分对象,然后使用query2.whereKey("Owner", equalTo: userName!) 进行查询。保存的对象不包含"Owner" 键。

【讨论】:

嗨 Santhosh,我什至评论了 query2.whereKey("Owner", equalTo: userName!) 我现在期待所有类 Restaurant 的对象都会被查询。我的查询中仍然没有任何数据。我需要做些不同的事情吗? 我尝试下载整个对象并且成功了。非常感谢您的帮助。 如果您发现我的回答有用,请将其标记为答案。谢谢。 一个问题,我们可以使用 parse 像 SQLite 和 Core-Data 一样只在本地存储数据吗?

以上是关于解析本地数据存储不显示固定数据的主要内容,如果未能解决你的问题,请参考以下文章

解析本地数据存储:取消固定对象似乎在 Swift 中被破坏

如何正确同步解析与本地数据存储?

在 Parse SDK Android 中使用未保存的 id null 固定对象查询本地数据存储

Swift Parse - 本地数据存储并在表格视图中显示对象

解析本地数据存储不起作用 - Swift 2

指针数据未存储在本地数据库解析 ios