swift之classfromString
2016-06-15 17:31
387 查看
在oc中大家都知道,使用classFromString可以很轻松的根据一个类的名称来获取一个类。但是在swift中再使用calssFromString来获取一个类名时,却却只能得到一个nil!!这到底是为什么呢?
经过本人的各方面努力终于找到了答案!!在此和大家分享一下!并不是上面的方法废弃掉了,而是swift的类名规范和oc的有了区别:
1. swift中使用classFromString时要在类名前面加上项目app名称:
获取appName的方法:
注意以上获取的appName是有问题的,swift中的app命名方式是这样的:myAppName_switch;但是以上方法获取的appName是这样的:myAppName switch ;所以仅此方法获取的类依然是nil!!所以要加上适当的修改:
最后的endName才是可以用的appName
4.接下来就可以使用classFromString了:
好了就这么愉快的解决了!!!以下是完整方法^_^
希望对大家有所帮助哦!!!觉得不错可以点个赞哦!谢谢!!!
func swiftClassFromString(className: String) -> AnyClass! {
// get the project name
经过本人的各方面努力终于找到了答案!!在此和大家分享一下!并不是上面的方法废弃掉了,而是swift的类名规范和oc的有了区别:
1. swift中使用classFromString时要在类名前面加上项目app名称:
获取appName的方法:
注意以上获取的appName是有问题的,swift中的app命名方式是这样的:myAppName_switch;但是以上方法获取的appName是这样的:myAppName switch ;所以仅此方法获取的类依然是nil!!所以要加上适当的修改:
最后的endName才是可以用的appName
4.接下来就可以使用classFromString了:
好了就这么愉快的解决了!!!以下是完整方法^_^
希望对大家有所帮助哦!!!觉得不错可以点个赞哦!谢谢!!!
func swiftClassFromString(className: String) -> AnyClass! {
// get the project name
if let appName: String = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleName") as! String? { let indexStart = appName.startIndex.advancedBy(10) let indexEnd = appName.endIndex.advancedBy(-6) let subStr = appName.substringToIndex(indexStart) let subStr2 = appName.substringFromIndex(indexEnd) let endName = "\(subStr)_\(subStr2)" let classStringName = "\(endName).\(className)" // return the class! return NSClassFromString(classStringName) } return nil; }
相关文章推荐
- Android Native 绘图方法
- Apple Swift学习教程
- 介绍 Fedora 上的 Swift
- C#中struct和class的区别详解
- VBS ArrayList Class vbs中的数组类
- 大家看了就明白了css样式中类class与标识id选择符的区别小结
- 深入了解PHP类Class的概念
- jquery 表单验证之通过 class验证表单不为空
- setAttribute 与 class冲突解决
- JavaScript通过HTML的class来获取HTML元素的方法总结
- JavaScript中的类(Class)详细介绍
- javascript面向对象包装类Class封装类库剖析
- jQuery针对input的class属性写了多个值情况下的选择方法
- 详解js中class的多种函数封装方法
- jQuery使用hide方法隐藏指定元素class样式用法实例
- jQuery给多个不同元素添加class样式的方法
- jQuery点击改变class并toggle及toggleClass()方法定义用法
- jquery采用oop模式class类的使用示例
- jquery点击改变class并toggle的实现代码