2016-03-22 5 views
-1

nach auf eine neue Version von Xcode/swift Upgrade i Störung erhalte „mehrdeutige Verwendung von Index vorher war gut arbeiten, aber jetzt bin immer ich diesen Fehlernach neuen Version von Xcode/swift Fehler Upgrade Mehrdeutige von Index

meinen Code für Suche in meinen Daten

@IBAction func searchB(sender: UITextField) { 

dataSecond = [] 
if sender.text == "" { 
search = false 
    self.reload() 

} else { 
for i in data { 
if (i["name"] as! String!).lowercaseString.findInString(sender.text!) { //Here is the error in this if condition 
dataSecond.addObject(i) 
} 
} 
search = true 
    self.reload() 

} 
+0

'dataSecond' Array oder Dictionary? –

+0

NSMutableArray Array –

+0

Und wie fügen Sie Daten hinzu? –

Antwort

0

Swift 2.2 ist ziemlich streng über Arten, viel strenger als die bisherigen Versionen. Was vor implizit war hat nun explizit zu sein.

Verwenden sichere Abwickeln mit einziehenden und es sollte funktionieren :

if let senderText = sender.text { 
    for i in data { 
     if let name = i["name"] as? String { 
      if name.lowercaseString.findInString(senderText) { 
       dataSecond.addObject(i) 
      } 
     } 
    } 
} 
+0

Ich bekomme Fehler in der gleichen Zeile, wenn name = i ["name"] als? String { Ambiguous von tiefgestellten –

+0

Dann bedeutet das "i" selbst ist von unbekanntem Typ, der Compiler weiß nicht, dass es ein Wörterbuch ist. Sie müssen "i" als NSDictionary oder "data" als Array von Wörterbüchern darstellen. – Moritz

+0

danke für Ihre Wiederholung i behoben durch nur ich ändere Schnur mit! if (i ["Name"]!). lowcaseString.findInString (sender.text!) { –

Verwandte Themen