swift - 下标 swift 2.2 的模糊使用

标签 swift parse-platform swift2 xcode7 xcode7.3

由于此错误,我的代码中存在很多问题。希望如果有人可以在这里帮助我,那么我可以解决其余的问题。我已经更新到 xcode 7.3 并运行 swift 2.2。

我读到编译器已经“限制更多”,我必须告诉它“中间”对象是什么。这让我有些困惑,希望得到进一步的解释。

func getMessage(dictionary:NSDictionary)->String{

    var message = String()
    if let dict = dictionary["aps"] {
        if let message:String = dict["alert"] as? String {
            return message
        }
        else{
           message = ""
        }

    }
    return message   
}

enter image description here

另一个例子:

  for object in objects {
            let getDriver = object.objectForKey("driver")

            if let picture = getDriver!["thumbnailImage"] as? PFFile {
                self.profilePictures.append(picture)
            }
            self.requestsArray.append(object.objectId as String!)
        }

enter image description here

最佳答案

字典值的类型总是AnyObject。将类型转换为更具体的内容,例如

if let dict = dictionary["aps"] as? [String:AnyObject] {

然后编译器知道键下标是有效且可能的

第二个例子类似:object 是一个字典,编译器需要知道 key driver 的值也是一个字典

if let getDriver = object.objectForKey("driver") as? [String:AnyObject] {
   if let picture = getDriver["thumbnailImage"] as? PFFile {
   ...

关于swift - 下标 swift 2.2 的模糊使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36257857/

相关文章:

swift - UITextField 在 Swift 中设置最大字符长度

Javascript 解析 Facebook 登录问题

然后 Javascript promise 不会在 for 循环中使用 Parse 查询顺序

arrays - 无法将类型 'Int' 的值转换为预期的参数类型 '@noescape (Int?) throws -> Bool'

algorithm - 闭包参数列表的上下文类型需要 1 个参数,但指定了 2 个

swift - Double 的扩展以接受 String 作为 Swift 中的初始值设定项

swift - 适用于 tvOS 的首选焦点 View

ios - 如何使用 ObjectMapper 从字典访问嵌套键?

javascript - 将 afterSave 与 Parse Cloud Code 结合使用

ios - 连接 html 嵌入字符串中的 swift 变量