模糊地使用下标swift 2.2

kar*_*eem 1 parse-platform swift xcode7 swift2 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   
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

另一个例子:

  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!)
        }
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

vad*_*ian 6

字典值的类型始终是AnyObject.例如,将类型转换为更具体的类型

if let dict = dictionary["aps"] as? [String:AnyObject] {
Run Code Online (Sandbox Code Playgroud)

然后编译器知道密钥订阅有效且可能

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

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