xcode - Swift2 在设备上运行时模糊使用下标

标签 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]

最佳答案

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

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

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

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

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

let peopleIn = counter[0]

关于xcode - Swift2 在设备上运行时模糊使用下标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36567787/

相关文章:

ios - 无法从 Xcode 获取模拟器列表。请打开 Xcode 并尝试直接从那里运行项目以解决剩余问题

iphone - 无法识别的选择器发送到实例 0x5d18d60...我要疯了!

swift - 如何以面向协议(protocol)的方式创建我的游戏架构?

windows-phone-7 - WP7 中的上标和下标

javascript - 如何找到下标字母的unicode?

ios - 使用大的导航标题和适合的文本

iphone - Bonjour 联网(发送消息)到两个以上的 iOS 设备

c - Swift:如何对两个在 C 中是枚举常量的东西进行按位或运算?

ios - SearchBar 的 UITextField 填充?

excel - 下标超出范围,将一个工作簿中的范围复制到另一个工作簿