Call a method from a String in Swift

前端 未结 3 893
星月不相逢
星月不相逢 2020-11-27 16:49

Calling a method from its name (in a String format) can be sometimes useful.
In Swift it is recomended to change behavior and to use closures to do something \"dynamical

3条回答
  •  伪装坚强ぢ
    2020-11-27 17:34

    swift3 version

    class MyClass:NSObject
    {
        required public  override init() { print("Hi!") }
        
        public func test(){
            print("This is Test")
        }
        public class func static_test(){
            print("This is Static Test")
        }
    }
    
    
    if let c: NSObject.Type = NSClassFromString("TestPerformSelector.MyClass") as? NSObject.Type{
       let c_tmp = c.init()
       c_tmp.perform(Selector("test"))
       c.perform(Selector("static_test"))
    }
    

提交回复
热议问题