【问题标题】:How to check if UISearchBar has returned results using query.whereKey in Swift如何在 Swift 中使用 query.whereKey 检查 UISearchBar 是否已返回结果
【发布时间】:2016-02-10 22:01:46
【问题描述】:

我有一个PFQueryTableViewController,并添加了一个UISearchBar。在我的 QueryForTable 函数中,我运行此代码来检查输入到 searchBar 中的文本是否与我的 Parse 列中的任何值匹配,如果匹配,则仅显示表中的那些电影:

override func queryForTable() -> PFQuery {
let query = PFQuery(className: "Reviews")
query.orderByDescending("createdAt")

if filmSearchBar.text != "" {

    query.whereKey("FilmName", containsString: filmSearchBar.text!)

}

    return query

}

这目前一切正常,没有问题。

我想做的是,如果没有找到任何结果,向用户显示警报,让他们知道没有找到任何结果。目前,如果用户随机搜索不在我的 Parse 数据库中的东西,它只会显示一个空白表(这在技术上是正确的) - 但我想知道如何先进行检查,所以如果搜索条目与任何内容都不匹配,显示此警报,否则,如果匹配,则仅显示当前的电影。

感谢任何帮助,谢谢

【问题讨论】:

    标签: ios swift parse-platform pfquery pfquerytableviewcontrolle


    【解决方案1】:

    你不能只用 findObjects 或 findObjectsInBackgroundWithBlock 来计算对象

    if filmSearchBar.text != "" {
        query.whereKey("FilmName", containsString: filmSearchBar.text!)
    }
    query.findObjectsInBackgroundWithBlock{ (array:[PFObject]?, error:NSError?) in 
       if array?.count == 0 {
        showAlert()
      }
    }
    

    【讨论】:

    • 我确实想知道我是否会这样做。我已经运行了该代码,但我得到了这个:Value of tuple type '([PFObject]?, NSError?)' (aka '(Optional<Array<PFObject>>, Optional<NSError>)') has no member 'count'
    • findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) 第一个对象是一个数组,对吗?你不能把这个数算下来吗? $0 是一个数组 btw
    • 您好,我已经添加了代码,但是当我构建并运行时,应用程序一启动就崩溃了。
    猜你喜欢
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2011-02-21
    • 2013-06-20
    • 1970-01-01
    • 2020-11-13
    相关资源
    最近更新 更多