objective-c – 在iOS中以编程方式实例化类
发布时间:2020-12-14 19:58:58 所属栏目:百科 来源:网络整理
导读:我正在开发一个大型iOS项目,设计并不像我希望的那样好,但我必须坚持下去. (生活有时可能是个婊子). 问题是我们有一个基本上让你浏览目录的库.您有一个过滤器,您可以在其中指定某个搜索条件,并且您会看到一个列表,您可以按下您感兴趣的项目.当您按某个项目时,
我正在开发一个大型iOS项目,设计并不像我希望的那样好,但我必须坚持下去. (生活有时可能是个婊子).
问题是我们有一个基本上让你浏览目录的库.您有一个过滤器,您可以在其中指定某个搜索条件,并且您会看到一个列表,您可以按下您感兴趣的项目.当您按某个项目时,您可以看到它的更详细描述. 该公司是一份工作,将这个相同的软件销售给拥有不同目录的许多不同公司.我们的想法是,库具有所有主要功能,并且使用它的项目可能以某种方式扩展或完全覆盖某些给定的接口. 举个例子,假设我的库有2个类来管理2个视图.它们将是“FilterViewController”和“DetailsViewControllers”.在代码的某个地方,这个类被实例化.它看起来像这样 我的方法是这样的: ProjectA方面 // Here I configure the library Library.FilterViewClass = ProjectAFilterViewController; Library.DetailsViewClass = ProjectADetailViewController; ProjectB方面 Library.FilterViewClass = ProjectBFilterViewController; Library.DetailsViewClass = nil; 图书馆方面 // Did the user configure the library? if(self.FilterViewClass == nil){ // I alloc the default ViewController myFilterViewController = [[FilterViewController alloc] init]; }else{ // Here I would like to alloc the custom ViewController myFilterViewController = [[Library.FilterViewClass alloc] init]; // DaProblem! } 这种方法的问题是我实际上不知道是否可以以编程方式实例化对象.或者至少我不知道如何.也许我使用错误的方法,一些方向将不胜感激. Txs提前! 解决方法
要从字符串中获取类,您可以使用此函数
Class cl = NSClassFromString(@"MyClass"); 要获取现有变量的类只需调用类方法. Class cl = [obj class]; // assuming obj1 is MyClass 现在您可以创建MyClass的实例 MyClass *myClass = (MyClass*)[[cl alloc] init]; ... [myClass release]; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |