Hi, all.

I´m currently developing a solution that will apply a theme using appearance 
proxies. The idea is to have a configuration file where the developer will say 
which class he wants to customize and which properties with its corresponding 
values. 

For instance, let´s say that one want to customize all navigation bar´s tint 
color property. So, the definitions for it will be put on a plist file as 
strings like:

UINavigationBar 
    tintColor
        #442d5f

To do so, I tried to do something like this:

let aClass: AnyClass? = NSClassFromString(“UINavigationBar")
let proxy = (aClass as? UIAppearance.Type)?.appearance()
let sel = NSSelectorFromString("setTintColor:")
proxy?.perform(sel, with: UIColor.red)

However, doing that way is not secure at all. The /perform/ method may fail if 
the configured class does not have it. But, testing for the method existence by 
using /responds(to:)/ always return false. 

It is worse if the class being customized is a specialization of some UIKit 
class. So, this is my question: is there a way to to load a class dynamically 
and inspect its properties/methods without knowing its type previously like I´m 
trying to do? I have tried to use a Mirror, but without success. 

Thanks,

Ronaldo
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to