2016-09-08 3 views
3

In Swift 2.3 habe ich diesen Code verwendet, aber nach der Aktualisierung von Swift auf Version 3.0 kann mein Code nicht kompiliert werden. Vielen Dank!Swift 3.0 NSArray valueForKey

var waterfallLibrary: NSArray = [] 
cell!.textLabel?.text = String(self.waterfallLibrary.valueForKey("songName").objectAtIndex(indexPath.row)) 
+1

Welche Fehlermeldung erhalten Sie? –

+0

'Wert (forKey:" songName ")' –

+1

'(WasserfallLibrary.value (forKey:" SongName ") als! NSArray) .Objekt (at: indexPath.row)' –

Antwort

8

Mein Problem

(waterfallLibrary.value(forKey: "songName") as! NSArray).object(at: indexPath.row) 

Danke Leo Dabus mit diesem Code gelöst!

+0

Sie sind willkommen –

+0

Lol. Also die Antwort habe ich dann gegeben. Warum du meine Antwort in deine eigene Antwort kopieren? – Fogmeister

+0

Ihre ursprüngliche Antwort war falsch. 'valueForKey (key: blah)' –

1

In Swift 3.0 ist der erste Parametername erforderlich. So sollte der Code sein ...

value(forKey: indexPath.row) 

Wenn Sie die Fehlermeldung lesen wird es Ihnen sagen, und es wird es auch für Sie korrigieren.

Wenn Sie Ihren gesamten Code konvertieren möchten, verwenden Sie einfach den integrierten xcode-Konverter, der all dies für Sie erledigt. Auch hier wird angeboten, wenn Sie das Projekt in Xcode öffnen 8.

+0

Ich weiß, aber ich brauche zusätzliche Verwendung indexPath.row –

+0

@DmitriyGroschovskiy nicht sicher, warum das ein Problem ist? Setzen Sie einfach "indexPath.row", wo ich blah. – Fogmeister