突然、" Ambiguous use of 'subscript'AnyObject
" というエラーが表示されて、添字が許可されないのはなぜだろうか。Swift 2.2(Xcode 7.3)
以下は、以前は正常に機能していた私のコードです。
func sampleMethod() {
PFCloud.callFunctionInBackground("sampleFunction", withParameters: nil) { (response, error) -> Void in
guard let response = response else {
if let error = error {
print(error)
}
return
}
if let records = response as? [AnyObject] { // Valid response
for record in records {
if let activeCount = record["activeCount"] as? Int {
print("activeCount: \(activeCount)")
}
if let persons = record["persons"] as? [AnyObject] {
for person in persons {
if let age = person["age"] as? Int {
print("age: \(age)")
}
if let properties = person["properties"] as? [AnyObject] {
for property in properties {
if let propertyName = property["name"] as? String {
print("propertyName: \(propertyName)")
}
if let propertyValue = property["value"] as? String {
print("propertyValue: \(propertyValue)")
}
}
}
}
}
}
} else {
print("Invalid response")
}
}
}
に変更したSwift 2.2
後、現在動作しているコードは次のとおりです。AnyObject
[String: AnyObject]
func sampleMethod() {
PFCloud.callFunctionInBackground("sampleFunction", withParameters: nil) { (response, error) -> Void in
guard let response = response else {
if let error = error {
print(error)
}
return
}
if let records = response as? [[String: AnyObject]] { // Valid response
for record in records {
if let activeCount = record["activeCount"] as? Int {
print("activeCount: \(activeCount)")
}
if let persons = record["persons"] as? [[String: AnyObject]] {
for person in persons {
if let age = person["age"] as? Int {
print("age: \(age)")
}
if let properties = person["properties"] as? [[String: AnyObject]] {
for property in properties {
if let propertyName = property["name"] as? String {
print("propertyName: \(propertyName)")
}
if let propertyValue = property["value"] as? String {
print("propertyValue: \(propertyValue)")
}
}
}
}
}
}
} else {
print("Invalid response")
}
}
}
以下は、に変更AnyObject
している間に解決された一連のエラーのスクリーンショット[String: AnyObject]
です。
AnyObject
Swift 2.2 で添え字が許可されていない理由について何か考えはありますか?