it-swarm.com.de

Swift 3 Type 'Any' hat keine tiefgestellten Mitglieder

Ich habe gerade mein Projekt auf Swift 3 konvertiert. Ich habe hier eine Codezeile:

let type = self.data[indexPath.row]["Type"] as? String

aber jetzt bekomme ich diesen fehler:

Type 'Any' has no subscript members

Warum erhalte ich diese Fehlermeldung und behebe ich sie?

8
user979331
let type = (self.data[indexPath.row] as? [String : String])?["Type"]

Sie müssen self.data[indexPath.row] in ein Wörterbuch umwandeln.

15
egor.zhdan
Even I was facing the same error 

for item in 0...((currentSectionCells as! NSMutableArray).count - 1) {

                if currentSectionCells[item]["isVisible"] as! Bool == true {
                }   // error "Type 'Any' has no subscript "
            }

Then changed to code as below

for item in 0...((currentSectionCells as! NSMutableArray).count - 1) {
               if (item as! NSDictionary).value(forKey: "isVisible") as! Bool == true {
                }
}

Dann hat es fehlerfrei kompiliert.

0
Jasmine John

Entweder Ihre data oder der Wert, den Sie bei der Indexierung zurückgegeben haben, z. data[0] hat den Typ Any, den Sie zu subskribieren versuchen.

Stellen Sie sicher, dass der Compiler weiß, dass alles, was Sie erhalten, ein bekannter Typ ist, der Subscripting unterstützt. Wie zum Beispiel ein Array oder ein Wörterbuch.

0
jhabbott