2017-03-25 2 views
0

Ich habe 2 Klassen:Wie das Element zurückzugeben, die für das Element gesucht enthält

- Favourite 
    + key 
    + showKey 
- Show 
    + key 

Ich habe ein Array von favouriteShows[Favourite] habe ich eine Show Objekt show

zu überprüfen, ob die Taste Show Teil favouriteShows I tun:

if favouriteShows.contains(where: {$0.showKey == show.key}) { 
... 
} 

Aber ich möchte auch feststellen, welche Lieblings es war th Ich hatte den ShowKey.

So etwas wie let favouriteIndex = favouriteShows.contains(where: {$0.showKey == show.key})

+0

Sie auch 'erste verwenden können (wobei:) 'wie diese http://stackoverflow.com/a/42037292/6433023 um das Objekt zu bekommen –

Antwort

1

Sie sind für index(where:)

guard let favouriteIndex = favouriteShows.index(where: {$0.showKey == show.key}) else { 
    // no favourite matched 
    return 
} 

// use favouriteIndex 
0

Alternativ suchen, können Sie die favouriteShows Array aufzählen, wie folgt:

for (ndx, sh) in favouriteShows.enumerated() { 
    if sh.showKey == show.key { 
     // ndx contains the index at this point 
    } 
} 
Verwandte Themen