Twitter API 使用 Swift 的 URLRequestWithMethod 无效

问题描述 投票:0回答:3

我正在尝试按照

this
示例访问 home_timeline 请求。

但是,我不断收到以下错误:

“URLRequestWithMethod”,其参数列表类型为“(String, URL: String,parameters: NSArray, error: inout NSError?)”

func getHomeTimeLine(){
    var clientError:NSError?
    let params = []
    
    let request = Twitter.sharedInstance().APIClient.URLRequestWithMethod(
        "GET",
        URL: "https://api.twitter.com/1.1/statuses/home_timeline.json",
        parameters: params,
        error: &clientError)
    
    if request != nil {
        Twitter.sharedInstance().APIClient.sendTwitterRequest(request) {
                (response, data, connectionError) -> Void in
                if (connectionError == nil) {
                    var jsonError : NSError?
                    let json : AnyObject? =
                    NSJSONSerialization.JSONObjectWithData(data,
                        options: nil,
                        error: &jsonError)
                }
                else {
                    println("Error: \(connectionError)")
                }
        }
    }
    else {
        println("Error: \(clientError)")
    }
    
}
ios swift twitter
3个回答
6
投票

将 params 定义为字典并使用它。

让参数:Dictionary = Dictionary()

func getHomeTimeLine() {
    var clientError:NSError?
    let params: Dictionary = Dictionary<String, String>()

    let request: NSURLRequest! = Twitter.sharedInstance().APIClient.URLRequestWithMethod(
        "GET",
        URL: "https://api.twitter.com/1.1/statuses/home_timeline.json",
        parameters: params,
        error: &clientError)

    if request != nil {
        Twitter.sharedInstance().APIClient.sendTwitterRequest(request!) {
            (response, data, connectionError) -> Void in
            if (connectionError == nil) {
                var jsonError : NSError?
                let json : AnyObject? =
                NSJSONSerialization.JSONObjectWithData(data!,
                    options: nil,
                    error: &jsonError)

                // check for json data
                if (json != nil) {
                    println("response = \(json)")
                } else {
                    println("error loading json data = \(jsonError)")
                }
            }
            else {
                println("Error: \(connectionError)")
            }
        }
    }
    else {
        println("Error: \(clientError)")
    }
}

0
投票

试试这个:

let request: NSURLRequest? = Twitter.sharedInstance().APIClient.URLRequestWithMethod("GET", URL: "https://api.twitter.com/1.1/statuses/user_timeline.json",
        parameters: ["screen_name" : username,
            "count" : "20"] ,
        error: &clientError)

0
投票

实际上,方法签名中的“URL”已更改为“URLString”,正确/更新的方法调用(在 Objective C 中)如下所示:

NSDictionary *params = @{@"include_email": @"true", @"skip_status": @"true"};

NSError *客户端错误;

NSURLRequest *请求 = [客户端 URLRequestWithMethod:@"GET" URLString:@"https://api.twitter.com/1.1/account/verify_credentials.json" 参数:params 错误:nil];

希望这对某人有帮助!

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.