博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用NSClassFromString
阅读量:6261 次
发布时间:2019-06-22

本文共 1518 字,大约阅读时间需要 5 分钟。

使用NSClassFromString

使用NSClassFromString可以直接从字符串初始化出对象出来,即使不引用头文件也没关系,以下是源码:

AppDelegate.m

////  AppDelegate.m//  Class////  Copyright (c) 2014年 Y.X. All rights reserved.//#import "AppDelegate.h"@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];        Class aClass                   = NSClassFromString(@"RootViewController");    UIViewController *CV           = [[aClass alloc] init];    self.window.rootViewController = CV;        self.window.backgroundColor    = [UIColor whiteColor];    [self.window makeKeyAndVisible];    return YES;}@end
RootViewController.m
////  RootViewController.m//  Class////  Copyright (c) 2014年 Y.X. All rights reserved.//#import "RootViewController.h"@interface RootViewController ()@end@implementation RootViewController- (void)viewDidLoad{    [super viewDidLoad];    self.view.backgroundColor = [UIColor redColor];}@end

改进点的方式(直接改装成为category):

NSString+CreateClass.h 与 NSString+CreateClass.m

////  NSString+CreateClass.h//  Class////  Copyright (c) 2014年 Y.X. All rights reserved.//#import 
@interface NSString (CreateClass)- (Class)toClass;@end
////  NSString+CreateClass.m//  Class////  Copyright (c) 2014年 Y.X. All rights reserved.//#import "NSString+CreateClass.h"@implementation NSString (CreateClass)- (Class)toClass{    return NSClassFromString(self);}@end

 

-备注-

这种用法是有着缺陷的呢:

这是在运行时的时候检测出来的,很不保险的说.

 

转载地址:http://qcesa.baihongyu.com/

你可能感兴趣的文章
基于scikit-learn机器学习库的分类预测
查看>>
svg与视频结合的镂空效果实践总结
查看>>
Scikit中的特征选择,XGboost进行回归预测,模型优化的实战
查看>>
Sklearn入门介绍
查看>>
Android广告图片轮播,支持无限循环和设置轮播样式、切换时间等
查看>>
screenX/Y,clientX/Y,offsetX/Y和pageX/Y之间有什么区别?
查看>>
webpack4.0优化那些事儿
查看>>
数据结构与算法(位运算) --javascript语言描述
查看>>
数据结构与算法(回溯法) --javascript语言描述
查看>>
百度地图开发实例番外篇--实用方法(持续更新)
查看>>
“大数据应用场景”之隔壁老王(连载一)
查看>>
k均值聚类算法(k-means)
查看>>
修改springboot的端口来启动项目
查看>>
MaxCompute SQL原理解析及性能调优
查看>>
vue中慎用style的scoped属性
查看>>
深度学习在股票市场的应用
查看>>
redis源码分析之事务Transaction(下)
查看>>
【273天】我爱刷题系列(32)
查看>>
Hystrix基础入门和特性讲解
查看>>
webpack-dev-server模块
查看>>