首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Swift声明的类上使用NSClassFromString()需要一个完全限定的名称

在Swift声明的类上使用NSClassFromString()需要一个完全限定的名称
EN

Stack Overflow用户
提问于 2015-03-31 21:01:59
回答 1查看 195关注 0票数 0

我有一个问题,在Swift中,我定义了一个名为Person的类,当与一些目标-c代码交谈时,它将尝试创建该类的新实例。

显然,NSClassFromString(@"Person")失败了,因为它需要是一个完全限定的名称,比如DBAccess_Test.Person.。

我的问题是,我是否能够通过搜索类的注册表来编程地生成DBAccess_Test.部分?

原因是,对于我们维护的ORM,Swift程序员很可能决定在应用程序的单独名称空间中拥有他的所有存储类。但是,我们希望维护与开发人员理解的类名相匹配的标准表命名实践。

例如,代替查询的是:

代码语言:javascript
运行
复制
NSArray* r = [[[[Person query] 
             where:@"surname IN (SELECT surname FROM Employees)"]
             orderBy:@"forename"]
             fetch];

它将成为:

代码语言:javascript
运行
复制
NSArray* r = [[[[Person query] 
             where:@"surname IN (SELECT surname FROM DBAccess_Test_Employees)"]
             orderBy:@"forename"]
             fetch];

ORM已经有点身份危机了。我们只希望检查表名和程序员将要使用的类名。

提前感谢您的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-31 21:25:25

令人恼怒的是,我一发布这篇文章(尽管搜索了几个小时),我就无意中发现了答案。

你必须把@objc(SwiftClassName)放在你的快速课程之上。

比如:

代码语言:javascript
运行
复制
@objc(SubClass)
class SubClass: SuperClass {...}

然后,所有原始的目标-c代码都会看到这些类,而不会尝试对它们做任何奇怪的事情!

感谢克劳斯

在这里可以找到原始的帖子:

https://stackoverflow.com/a/24448786/846035

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29378508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档