Я хочу, чтобы мой класс Swift FinderForCountry нашел страну с указанным именем.
Код должен также помнить все страны (по имени), которые уже были найдены.
Мой существующий Swiftкласс имеет переменную [String: Country] и метод findCountry (), который принимает и строку, и функцию, которая принимает страну.
public
class FinderForCountry {
private
var mapOfStringToCountry = [String: Country]()
public
func findCountry(from string: String, _ functionThatTakesCountry: @escaping (Country) -> Void) {
if let country = mapOfStringToCountry[string] {
functionThatTakesCountry(country)
} else {
DispatchQueue.main.async {
let country = Country(string)
self.mapOfStringToCountry[string] = country
functionThatTakesCountry(country)
}
}
}
}
Это лучший способ написания кода илиесть лучший способ?Например:
public
class FinderForCountry {
private
var mapOfStringToCountry = [String: Country]()
public
func findCountry(from string: String, _ functionThatTakesCountry: @escaping (Country) -> Void) {
DispatchQueue.main.async {
if let country = self.mapOfStringToCountry[string] {
functionThatTakesCountry(country)
} else {
let country = Country(string)
self.mapOfStringToCountry[string] = country
functionThatTakesCountry(country)
}
}
}
}
Большое спасибо.