【问题标题】:Parse String Query as Array将字符串查询解析为数组
【发布时间】:2015-09-21 15:00:33
【问题描述】:

我想让用户从聚光灯下搜索我的应用。我有一个 PFQueryTableViewController 有 500 行。在 Parse 中,可搜索的信息保存为字符串,共有 500 行不同的行。因此,为了能够索引作为字符串的行,我需要一个用于关键字等的数组。但我不知道如何转换查询或将其打印为数组。

总结:我有 500 行字符串,我希望它们打印为数组,但无法打印。

谢谢。

我的查询函数:

 override init(style: UITableViewStyle, className: String!) {
        super.init(style: style, className: className)
    }
    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)!

        self.parseClassName = "myClassName"
        self.textKey = "myColoumnName"
        self.pullToRefreshEnabled = true
        self.paginationEnabled = false
    }
    override func queryForTable() -> PFQuery {
        var query = PFQuery(className: "myClassName")

        query.cachePolicy = .CacheThenNetwork
        query.orderByAscending("myColoumnName")
        query.limit = 1000
        return query
    }
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> myPFTableViewCell {
        var cell = tableView.dequeueReusableCellWithIdentifier("mySegue") as! myPFTableViewCell!
        if cell == nil {
            cell = myPFTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "mySegue")
        }
        if let myString = object?["myColoumnName"] as? String {
            cell?.myLabel?.text = myString
        }
        if let myString2 = object?["myColoumnName2"] as? String {
            cell?.myLabel2?.text = myString2
        }

        return cell
    }
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "mySegue2" {
            var detailScene = segue.destinationViewController as! myViewController
            if let indexPath = self.tableView.indexPathForSelectedRow {
                let row = Int(indexPath.row)
                detailScene.currentObject = (objects?[row] as! PFObject)
            }
        }
    }

【问题讨论】:

    标签: ios swift parse-platform tableview corespotlight


    【解决方案1】:

    使用PFQueryTableViewController 时,所有查询结果都存储在objects 数组中。这是一个 PFObject 数组,因此您需要创建一个函数来使用 PFObject 的属性创建搜索词数组。可能是这样的:

    if let objectsArray = objects as [PFObject] {
        for object in objectsArray {
            stringArray.append(object["myColoumnName"] as? String)
        }
    }
    

    【讨论】:

    • 感谢该命令使我的数组充满了解析数据,但问题是它永远不会停止追加,并且在我停止应用程序之前它会无穷无尽
    • 它可能被多次调用。假设数据不经常更改,您只希望调用一次。如果 Parse 上的数据确实经常更改并且您需要更新数组,请在添加新值之前使用 stringArray.removeAll(keepCapacity: false) 删除所有旧值。
    猜你喜欢
    • 2011-07-20
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 2017-03-22
    相关资源
    最近更新 更多