println(NsstringFromClass(MyClass.self))
结果:
_TtC5test7MyClass
我已经尝试将@objc属性添加到该类,并使其成为NSObject的子类,但没有任何区别。我发现如果我用一个相同名称的Objective-C类替换MyClass,并在桥接头中导入它,它会给我’MyClass’,但这不是必要的。
另一个选择是为此制定协议,我想以这种方式使用的每个类必须符合:
protocol nameable { class var classname: String { get }}
但是,使用内置的方式来实现这一点更容易。
基于xcode 6 beta 5的新格式。(project_name)。(class_name)
func getname(classtype:AnyClass) -> String { let classstring = NsstringFromClass(classtype.self) let range = classstring.rangeOfString(".",options: NsstringCompareOptions.CaseInsensitiveSearch,range: Range<String.Index>(start:classstring.startIndex,end: classstring.endindex),locale: nil) return classstring.substringFromIndex(range!.endindex)}
最新6.3 Xcode Swift 1.2
如果您需要扩展名,或者您可以将其放在任何通用对象上:
public extension NSObject{ public class var nameOfClass: String{ return NsstringFromClass(self).componentsSeparatedByString(".").last! } public var nameOfClass: String{ return NsstringFromClass(self.dynamicType).componentsSeparatedByString(".").last! }}总结
以上是内存溢出为你收集整理的可可触摸 – 在swift中获取类名的用户可读版本(在objc NSStringFromClass中)全部内容,希望文章能够帮你解决可可触摸 – 在swift中获取类名的用户可读版本(在objc NSStringFromClass中)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)