Ios 使用解析查询在Swift中调用restapi

Ios 使用解析查询在Swift中调用restapi,ios,rest,swift,parse-platform,uisearchdisplaycontroller,Ios,Rest,Swift,Parse Platform,Uisearchdisplaycontroller,我正在尝试对使用创建的解析数据库发出GET请求。当用户在UISearchBar中输入文本时,将进行API调用,最终目标是在UITableView中显示返回的数据。下面的代码只捕获了我发出有效HTTP请求的尝试,其中我尝试查看“Query1”是否与搜索字符串匹配(“Query1”是解析数据库中的一个参数,基本上用作关联的搜索词) 结果是无法生成代码,因为我不知道如何使用Swift将参数应用于Parse REST API。任何帮助都将不胜感激。我在其他地方得到了帮助,但我想为任何有同样问题的人发布我

我正在尝试对使用创建的解析数据库发出GET请求。当用户在UISearchBar中输入文本时,将进行API调用,最终目标是在UITableView中显示返回的数据。下面的代码只捕获了我发出有效HTTP请求的尝试,其中我尝试查看“Query1”是否与搜索字符串匹配(“Query1”是解析数据库中的一个参数,基本上用作关联的搜索词)


结果是无法生成代码,因为我不知道如何使用Swift将参数应用于Parse REST API。任何帮助都将不胜感激。

我在其他地方得到了帮助,但我想为任何有同样问题的人发布我得到的答案。下面是Swift中的一个Parse REST API调用示例,它使用了我上面列出的相同参数

func makeParseRequest(searchString: String) {

        var request = NSMutableURLRequest()
        request.HTTPMethod = "GET"
        request.addValue(kAppId, forHTTPHeaderField: "X-Parse-Application-Id")
        request.addValue(kRestAPIKey, forHTTPHeaderField: "X-Parse-REST-API-Key")
        request.addValue("application/json", forHTTPHeaderField: "Content-Type")
        request.addValue("application/json", forHTTPHeaderField: "Accept")

        var params = ["Query1" : "\(searchString)"]
        var error: NSError?
        var paramsJSON = NSJSONSerialization.dataWithJSONObject(params, options: nil, error: &error)
        var paramsJSONString = NSString(data: paramsJSON!, encoding: NSUTF8StringEncoding)
        var whereClause = paramsJSONString?.stringByAddingPercentEscapesUsingEncoding(NSASCIIStringEncoding)

        let urlString = "https://api.parse.com/1/classes/sampleObjectData"
        var requestURL = NSURL(string: String(format: "%@?%@%@", urlString, "where=", whereClause!))

        request.URL = requestURL!

        var task = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: { (data, response, err) -> Void in
            var stringData = NSString(data: data, encoding: NSUTF8StringEncoding)
            println(stringData)
        })

        task.resume()
    }

在iOS 9中,不推荐使用
stringByAddingPercentEscapesUsingEncoding
。这会起作用:
stringByAddingPercentEncodingWithAllowedCharacters(.URLQueryAllowedCharacterSet())
func makeParseRequest(searchString: String) {

        var request = NSMutableURLRequest()
        request.HTTPMethod = "GET"
        request.addValue(kAppId, forHTTPHeaderField: "X-Parse-Application-Id")
        request.addValue(kRestAPIKey, forHTTPHeaderField: "X-Parse-REST-API-Key")
        request.addValue("application/json", forHTTPHeaderField: "Content-Type")
        request.addValue("application/json", forHTTPHeaderField: "Accept")

        var params = ["Query1" : "\(searchString)"]
        var error: NSError?
        var paramsJSON = NSJSONSerialization.dataWithJSONObject(params, options: nil, error: &error)
        var paramsJSONString = NSString(data: paramsJSON!, encoding: NSUTF8StringEncoding)
        var whereClause = paramsJSONString?.stringByAddingPercentEscapesUsingEncoding(NSASCIIStringEncoding)

        let urlString = "https://api.parse.com/1/classes/sampleObjectData"
        var requestURL = NSURL(string: String(format: "%@?%@%@", urlString, "where=", whereClause!))

        request.URL = requestURL!

        var task = NSURLSession.sharedSession().dataTaskWithRequest(request, completionHandler: { (data, response, err) -> Void in
            var stringData = NSString(data: data, encoding: NSUTF8StringEncoding)
            println(stringData)
        })

        task.resume()
    }