数据从解析数据库中检索

时间:2016-01-17 22:52:07

标签: ios arrays swift

所以我想创建一个应用程序,人们可以看到他们所在的组。因此,对于他们已经或已经添加的每个组,它将被保存在一个名为“grupper”的解析中。他们的用户名保存在“用户名”列下,他们所在的组是“gruppe”。

我一直在搜索可以在表格视图中检索其组的脚本。我没有收到任何错误,但表视图只是空白。

我无法指出为什么它不会检索它们所在的任何名称。

我是stackoverflow和swift的新手,所以如果我需要提供更多信息,请告诉我。

以下是我的代码:

@IBOutlet weak var grupper: UITableView!

var userArray: [String] = []

    func retrieveMessages() {
        let userArray: [String] = []
        let query:PFQuery = PFQuery(className: "grupper")
        let currentUser = query.whereKey("username", equalTo: PFUser.currentUser()!.username!)
        currentUser.findObjectsInBackgroundWithBlock {
            (objects, error) -> Void in

            for object in objects! {
                let username:String? = (object as PFObject)["gruppe"] as? String
                if username != nil {
                    self.userArray.append(username!)
                }
            }
            self.grupper.reloadData()
        }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    // MARK: - Table view data source

     func numberOfSectionsInTableView(gruppe: UITableView) -> Int {
        // #warning Potentially incomplete method implementation.
        // Return the number of sections.
        return 1
    }

     func grupper(grupper: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete method implementation.
        // Return the number of rows in the section.
        return userArray.count
    }


     func grupper(grupper: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        // Update - replace as with as!

        let cell = grupper.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as UITableViewCell

        cell.textLabel?.text = userArray[indexPath.row]

        return cell
    }

1 个答案:

答案 0 :(得分:0)

不清楚何时以及从哪种方法调用retrieveMessages方法。

首先,确保从retrieveMessages(第一次访问该视图时调用)或viewDidLoad(即viewWillAppear调用class YourController: UIViewController { override func viewWillAppear(animated: Bool) { retrieveMessages() } // ... your other code is omitted for brevity ... } 每次访问视图时调用。)

例如:

retrieveMessages

第二次,如果您已经在执行上述操作(或类似的操作),请确保print方法中的查询返回数据。

您可以添加一个临时userArray行来检查func retrieveMessages() { // ... your code is omitted for brevity ... print("userArray size = \(userArray.count)") } 数组的大小。 (或者,您可以使用调试器进行检查。)

例如:

var installedDate: NSDate? {
    get {
        return NSUserDefaults().objectForKey("installedDateKey") as? NSDate
    }
    set {
        NSUserDefaults().setObject(newValue, forKey: "installedDateKey")
    }
}