Google Analytics没有错误xcode swift

时间:2017-06-21 20:13:24

标签: ios swift xcode google-analytics

 func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {

    let urlRequest = URLRequest(url: URL(string: "https://www.googleapis.com/youtube/v3/channels?part=id&forUsername=\(searchBar.text!.replacingOccurrences(of: " ", with: "%20"))&key=1234")!)

    let task = URLSession.shared.dataTask(with: urlRequest) { (data, response, error) in

        if error == nil {
            do {
                let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! [String : AnyObject]

                if let items = json["items"] as? [String : AnyObject] {
                        if let id = items["id"] as? Int {
                            self.id = id
                    }
                }


                if let _ = json["error"] {
                    self.exists = false
                }

                DispatchQueue.main.async {
                    if self.exists{

                        print("\(self.id)")
                    }else {

                        self.exists = true

                    }
                }


            } catch let jsonError {
                print(jsonError.localizedDescription)
            }
        }
    }
    task.resume()
}

我想从谷歌分析中获取Youtube频道 id ,但它一直在说" nil" 。我不确定我做错了什么,因为我的网站上的一切都是一样的!请帮忙!感谢

1 个答案:

答案 0 :(得分:0)

当我使用你的代码时,我得到的JSON是

if ( ! get_option( 'initial_rewrites_setup_flush' ) ) {
    flush_rewrite_rules( true );
    update_option( 'initial_rewrites_setup_flush', true );
}

所以,{ "kind": "youtube#channelListResponse", "etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/uX-2P6nRpmv4I_ZWtiIyofqF5ss\"", "pageInfo": { "totalResults": 1, "resultsPerPage": 5 }, "items": [ { "kind": "youtube#channel", "etag": "\"m2yskBQFythfE4irbTIeOgYYfBU/3W7RccGn0o-nTtgCGrEvd-AbX6Y\"", "id": "UCfpqR6vgT_mzWrbXcTYxL8w" } ] } 不是Int。试试

items["id"]

代替

另外,将 if let id = items["id"] as? String 更改为String。

更新:

另外,

self.id

因为项目是一系列词典而无法工作。

你需要

if let items = json["items"] as? [String : AnyObject] {

然后,

if let items = json["items"] as? [[String : AnyObject]] {

你应该检查items.count,但是一旦你开始工作就可以做到。