栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

NSClassFromString()始终返回nil

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

NSClassFromString()始终返回nil

NSClassFromString
函数 确实 适用于(纯和Objective-C派生的)swift类,但是仅当您使用全限定名时才起作用。

例如,在一个模块中,该模块使用名为

MyApp
swift的纯swift类
Person

let personClass: AnyClass? = NSClassFromString("MyApp.Person")

模块名称由“产品模块名称”(

PRODUCT_MODULE_NAME
)构建设置定义,通常与您的目标名称相同(并进行了一些标准化处理,例如删除空格)。

这是非典型的,但是如果要加载的类在当前模块中,并且您在编译时不知道模块名称,例如因为代码被编译为多个目标的一部分,则可以动态查找包名称, 通常
对应于模块名称:

let moduleName = Bundle.main.infoDictionary!["CFBundleName"] as! Stringlet personClass: AnyClass? = NSClassFromString(moduleName + "." + "Person")

但是我不建议您这样做,除非您在编译时真的不知道。

有关更多信息,请参见 将Swift
与可可和Objective-C
一起使用 带有Objective-C
API的类名



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/636403.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号