Это просто простое отображение ...
Здесь это как собственная модель представления.
func initialMarks(for profile: Observable<Profile>) -> Observable<String> {
return profile
.compactMap { profile in
if profile.avatar == nil {
return initialLetters(first: profile.name, second: profile.surname)
}
else {
return nil
}
}
}
Если вы хотите встроить ее в структуру / класс модели представления, выможет сделать что-то вроде:
struct ViewModel {
let profile: Observable<Profile>
var initialMarks: Observable<String> {
return profile
.map { profile in
if profile.avatar == nil {
return initialLetters(first: profile.name, second: profile.surname)
}
else {
return ""
}
}
}
}
Кроме того, две реализации выше слегка различаются в зависимости от того, что вы хотите ... В первой она инициализирует только инициалы, когда аватар ноль, вторая выдаетпустая строка, когда аватар существует, или инициалы, когда аватар в nil.