2

我试图确保在实现 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()
    }
}
4

1 回答 1

0

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

于 2015-09-21T07:13:43.303 回答