按名称获取班级

2024-01-25

我可以通过名称获取一个类吗?例如:

class Foo {

}

class Bar {

}

let x = "Foo"
classByString(x) // need to return Foo

我想使用元编程来减少代码维护。


您可以使用NSClassFromString:

if let anyObj : AnyObject.Type = NSClassFromString("MyAppName.MySwiftClassFoo") {
   //call Foo
} else {
   //call Bar
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

按名称获取班级 的相关文章

随机推荐

  • 裸机环境下malloc什么时候返回NULL?

    有一个c内存模型如下 Last Address of RAM Stack v RAM Heap ZI RW First Address of RAM 堆栈和堆空间以相反的方向增加 它们会在中间相互重叠
  • 如何将可变数量的参数传递给 sprintf() 函数?

    在我的网页中 如果用户选择表单中的某些选项 例如 1 A Chosen 2 B Chosen 3 C Not Chosen 然后 我的脚本中的 sprintf 函数应该接受该数量的参数 sprintf s s valueOf A value
  • 从 python32 进行 Python 打印

    我无法让 Python 打印 word 文档 我想做的是打开Word文档 打印它然后关闭它 我可以打开Word和Word文档 import win32com client msword win32com client Dispatch Wo
  • 如何使用 Applescript 更改首选项窗格滑块值?

    我正在尝试创建一个 AppleScript 来设置输入音量 of the Input类别下的Sound菜单中系统偏好设置 如何改变 Slider 的值 tell application System Preferences activate
  • Create React App 中 Eject 做了什么?

    我认为这与直接使用 webpack 有关 因此提供了更多的灵活性 但我不完全确定是否有人可以解释 弹出 的含义 另外 弹出创建反应应用程序会产生什么后果 这样做是不好还是 引导一个react项目需要你了解诸如Webpack or Babel
  • Apple watchOS 2 加速计

    我正在考虑制作一个watchOS2使用加速度计的应用程序 如果应用程序在后台运行 它是否仍然能够接收来自加速度计的输入或CMMotionManager 仅当 watchOS2 应用程序运行时 您才能访问实时加速度计数据 但是 您可以访问加速
  • Angular 8嵌套路由和多个路由器出口不起作用

    我现在有一个简单的 Angular 8 3 应用程序 但路由不起作用 当我转到 logs 时 没有任何错误 但屏幕上没有显示任何内容 当我转到 logs detailed 1036 时 控制台中出现错误 错误 无法匹配任何路由 URL 段
  • 如何使用 UIPinchGestureRecognizer 设置最小和最大缩放比例

    我想放大和缩小图像视图 但我不想使用 UIScrollView 来实现这一点 所以为此我使用了 UIPinchGestureRecognizer 这是我的代码 recognizer view transform CGAffineTransf
  • 代码签名错误:身份“iPhone Developer: x Xxxxx”与任何配置文件中的任何身份都不匹配

    当我构建 iPhone 项目以在我的设备上运行时 出现此构建错误 Code Sign error The identity iPhone Developer x Xxxxx doesn t match any identity in any
  • 使用摇动效果向左和向右制作 WPF 窗口动画?

    有人可以告诉我如何从当前位置为窗口设置动画吗 我正在寻找一种摇动效果 只需左右摇动窗口 5 到 6 次 我知道我需要使用Animation By 这是我已经开始但还没有走得太远的事情 然而这不起作用
  • 在 Numpy / Pandas 中生成所有平行对角线之和的直接方法?

    我有一个矩形 不能假设为正方形 Pandas DataFrame 的数字 假设我选择一个对角线方向 从左上到右下 或 从右上到左下 我想计算一个系列 其条目是原始 DataFrame 沿选定的一组平行对角线的值的总和 要完全指定目标 您需要
  • 如果鼠标在元素内部,则延迟 mouseenter 事件并引发事件

    我使用这个基于 jQuery 开发的选项卡视图 https d2o0t5hpnwv4c1 cloudfront net 001 Tabbed site jQuery html https d2o0t5hpnwv4c1 cloudfront
  • 模拟拖动窗口标题栏的控件

    我已经构建了一个自定义控件 我希望允许人们单击并拖动我的控件 就像在窗口标题栏上拖动一样 做这个的最好方式是什么 到目前为止 我未能成功地利用鼠标向下 向上和移动事件来破译何时需要移动窗口 除了我的其他答案之外 您还可以在控件中手动执行此操
  • 将多个子视图传递给 SwiftUI 中的视图

    我创建了一个 Swift 包 它根据传递给它的内容数组创建多个 PageTabView import SwiftUI public struct WhatsNewView
  • 登录后活动管理员重定向

    当管理员登录时 它会自动重定向到主主页 即不是管理仪表板 我不确定为什么会这样做或如何改变它 路线 rb ActiveAdmin routes self devise for admin user ActiveAdmin Devise co
  • 匹配最长重复序列的正则表达式

    我想匹配至少重复一次的最长序列 Having T send ack new amend pending cancel replace replaced cancel pending cancel replace replaced 结果应该是
  • Sql Server 更改数据捕获:添加列时保留历史记录?

    将新列添加到配置为更改数据捕获 cdc 的表时 捕获实例表不会有新列 直到为源表禁用并重新启用 cdc 在此过程中 现有的捕获实例将被删除 我想我可以将现有数据复制到临时表中 然后使用以下 SQL 复制回来 但是 其他 CDC 元信息 例如
  • 添加 GROUP BY 子句产生的列

    我遇到了这样的情况 使用 GROUP BY 后需要从两行添加列 我的查询如下 select AcctId DC sum TrnAmt from TableId group by AcctId DC order by AcctId DC Re
  • Android动画暂停和播放问题

    我使用以下代码创建了一个动画 private AnimationSet rootSet new AnimationSet true private int xstart 258 private int ystart 146 for k
  • 按名称获取班级

    我可以通过名称获取一个类吗 例如 class Foo class Bar let x Foo classByString x need to return Foo 我想使用元编程来减少代码维护 您可以使用NSClassFromString