当我在设备上运行时,Swift2模糊地使用下标

时间:2016-04-12 08:35:55

标签: xcode swift subscript

当我要在我的设备上运行我的应用程序时,我的swift代码出了问题。当我在模拟器上运行它时一切都很好,但是当我要在我的设备上运行它时我会遇到两个错误。

我在最后两行得到两个错误,并且在两行上都显示“模糊地使用下标”。

我正在运行最新的xcode,如果有任何帮助......

    let requestURL: NSURL = NSURL(string: "The webpage im getting info from")!
    let urlRequest: NSMutableURLRequest = NSMutableURLRequest(URL: requestURL)
    let session = NSURLSession.sharedSession()
    let task = session.dataTaskWithRequest(urlRequest) {
        (data, response, error) -> Void in



        let httpResponse = response as! NSHTTPURLResponse // method that access information

        let statusCode = httpResponse.statusCode

        if (statusCode == 200) {
            do{

                let json = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments)


                // naming the two variables from json
                if let counter = json["counts"] {

            // It gets an error on both the peopleIn and peopleOut
                    let peopleIn = counter! [0]
                    let peopleOut = counter! [1]

1 个答案:

答案 0 :(得分:0)

json["counts"]返回AnyObject,编译器不知道它应该是一个数组。

将对象转换为期望的类型,至少

if let counter = json["counts"] as? [AnyObject] {

如果预期类型比[AnyObject]更具体,则将其转换为该类型。

如果if let成功,关联变量是非可选的,则不需要感叹号。

let peopleIn = counter[0]