Вы можете сохранить имя несистемного шрифта, но если это системный шрифт, единственное, что вам разрешено хранить, это тот факт, что это системный шрифт. Это прекрасная возможность для союза:
enum WhatFont {
case system
case name(String)
func fontOfSize(_ sz:CGFloat) -> UIFont? {
switch self {
case .system: return UIFont.systemFont(ofSize: sz)
case .name(let name): return UIFont(name: name, size: sz)
}
}
}
Проверьте это:
let f1 = WhatFont.system
print(f1.fontOfSize(17))
let f2 = WhatFont.name("Georgia")
print(f2.fontOfSize(17))