美文网首页
Swift responds(to:) NSSelectorF

Swift responds(to:) NSSelectorF

作者: 生命不止运动不息 | 来源:发表于2022-05-30 15:15 被阅读0次

Swift中 NSSelectorFromString #selector 使用

现有如下类,想动态调用方法modelWithDic

class KJSpecialCategoryModel: NSObject {
    var categoryId: String?
    var name: String?

    @objc static func modelWithDic(_ dic: [String: Any]?) -> KJSpecialCategoryModel? {
        Selector
        if let d = dic {
            let m = KJSpecialCategoryModel()
            m.name = String.formatObject(obj: d["groupName"])
            m.categoryId = String.formatObject(obj: d["id"])
            return m
        }
        return nil
    }
}

使用示例

self.responds(to: NSSelectorFromString("modelWithDic:"))

self.responds(to: #selector(modelWithDic(_:)))

注意

NSSelectorFromString 和 #selector 所传的函数参数写法是不同的,一个带_,一个不带(OC的类不需要带),但是冒号必须带。

下面是我犯的错误

之前我的写法是 NSSelectorFromString("modelWithDic(_:)") 然后,怎么也调用不到,才明白写错了

参考文章:
https://a1049145827.github.io/2018/03/13/Swift4-0中使用NSSelectorFromString/

相关文章

网友评论

      本文标题:Swift responds(to:) NSSelectorF

      本文链接:https://www.haomeiwen.com/subject/hfmoprtx.html