当前位置:  开发笔记 > Android > 正文

Objective-C中的动态即时类可能吗?

如何解决《Objective-C中的动态即时类可能吗?》经验,为你挑选了2个好方法。

我的问题如下.我有一个简单地采用XML摘录和XPath的方法.然后它应该为我创建一个XML摘录的对象数组.这意味着如果我传递了以下XML:


  Bob
  50

我的方法将实例化User类的实例,并使用键值编码来设置实例变量.这是相当直接的.唯一的问题是我来自大多数脚本背景,并试图看看是否可以将方法传递给类名.现在它正在做一个User类,后来它可能是一个Cars类,然后是一个Home类.在保持代码尽可能抽象的同时,从这种不同类型的方法实例化对象的最佳方法是什么?



1> codelogic..:

要使用其名称实例化类,可以使用NSClassFromString:

id obj = [[NSClassFromString(@"MySpecialClass") alloc] init];



2> Nathan Kinsi..:

类是对象,可以像其他对象一样使用/发送.

要创建一个类对象:

Class classForElement = [MyUserClass class];

实例化该类的对象

id newObject = [[classForElement alloc] init];

如果类名与元素名不同,请创建一个以Class作为对象的字典,并将元素名作为键.

[NSDictionary dictionaryWithObjectsAndKeys:
                         [MyUserClass class], @"user", 
                         [MyCarClass class], @"car", 
                         [MyHomeClass class], @"home",
                          nil]];

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有