J'utilise Swift pour le développement de mon application et j'utilise Swift lint for. Mais je reçois un avertissement concernant le code suivant:
for settingsKeys in searchResults {
if settingsKeys.key == settingsObject.key {
settingsKeys.value = settingsObject.value
try context.save()
}
}
La capture d'écran est jointe ci-dessous:
La syntaxe préférée par votre configuration swiftlint est:
for settingsKeys in searchResults where settingsKeys.key == settingsObject.key {
settingsKeys.value = settingsObject.value
try context.save()
}
Qui est similaire à
for settingsKeys in (searchResults.filter { $0.key == settingsObject.key }) {
settingsKeys.value = settingsObject.value
try context.save()
}
Si vous savez qu'il n'y a qu'un seul résultat avec le même key
, vous pouvez utiliser directement
if let settingsKeys = (searchResults.first { $0.key == settingsObject.key }) {
settingsKeys.value = settingsObject.value
try context.save()
}
On dirait qu'il s'attend à ce que le where
fasse partie du for
…
for settingsKeys in searchResults where settingsKeys.key == settingsObject.key {
settingsKeys.value = settingsObject.value
try context.save()
}