歧义使用下标 swift 2.2
ambiguous use of subscript swift 2.2
由于这个错误,我的代码中有很多问题。希望如果有人可以在这里帮助我,那么我可以解决其余的问题。我已经更新到 xcode 7.3 和 运行 swift 2.2.
我读到编译器已经"more restrictive",我必须告诉它"intermediary"对象是什么。这让我有些困惑,希望得到进一步的解释。
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
}
另一个例子:
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!)
}
字典值的类型总是AnyObject
。将类型转换为更具体的内容,例如
if let dict = dictionary["aps"] as? [String:AnyObject] {
然后编译器知道键下标是有效和可能的
第二个例子类似:object
是一个字典,编译器需要知道键 driver
的值也是一个字典
if let getDriver = object.objectForKey("driver") as? [String:AnyObject] {
if let picture = getDriver["thumbnailImage"] as? PFFile {
...
由于这个错误,我的代码中有很多问题。希望如果有人可以在这里帮助我,那么我可以解决其余的问题。我已经更新到 xcode 7.3 和 运行 swift 2.2.
我读到编译器已经"more restrictive",我必须告诉它"intermediary"对象是什么。这让我有些困惑,希望得到进一步的解释。
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
}
另一个例子:
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!)
}
字典值的类型总是AnyObject
。将类型转换为更具体的内容,例如
if let dict = dictionary["aps"] as? [String:AnyObject] {
然后编译器知道键下标是有效和可能的
第二个例子类似:object
是一个字典,编译器需要知道键 driver
的值也是一个字典
if let getDriver = object.objectForKey("driver") as? [String:AnyObject] {
if let picture = getDriver["thumbnailImage"] as? PFFile {
...