【发布时间】:2014-09-23 22:24:21
【问题描述】:
所以我试图在 Swift 中将实际变量名称作为字符串获取,但还没有找到这样做的方法......或者我可能从一个不好的角度看待这个问题和解决方案。
所以这基本上就是我想做的:
var appId: String? = nil
//This is true, since appId is actually the name of the var appId
if( appId.getVarName = "appId"){
appId = "CommandoFurball"
}
不幸的是,我无法在苹果文档中找到任何与此接近的内容,但:
varobj.self or reflect(var).summary
但是,这给出了变量本身内部的信息或在这种情况下为字符串的变量类型的信息,我想要变量的实际名称。
【问题讨论】:
-
您实际上想通过变量名称来实现什么?这不是 JavaScript 或 Python。诸如此类的动态语言会在运行时保留此类信息。在 Swift 中,变量名纯粹是为了方便程序员(以便给内存地址起人名),它们在运行时并不存在于程序中。
-
@Alexander 对 NSPredicates 很有用 :)
-
答案似乎是一个问题,“我怎样才能从一个类中获取属性和方法名称,元到只知道它们。”但是,我认为最初的问题更像是 bob.dofunction(ted),dofunction 如何找到字符串“bob”和“ted”。我正在编写 TUITest 代码,它会自行生成输出代码,让它知道它的名字会很好。但是,他将其标记为正确答案,所以他一定已经让它起作用了。另外,回答问题的 NSPredicate 的返回值在哪里?
-
你有没有让它与方法或函数的名称一起使用?我知道如何让它与属性或变量的名称一起使用,但我想获得方法或函数的名称。
标签: swift reflection