ios - iPhone 中的运行时类创建

标签 ios runtime nsobject

我需要和我的合作伙伴分工设计游戏阶段,我们非常需要使用 plist。所以,假设我有 20 种不同类型的类,我需要在运行时从中动态实例化对象。将从 plist 输入中选择一个特定的类,并且将动态创建该类的对象。

我首先想到的是 switch(),我猜它有点过时了。

所以我搜索了 Stack Overflow,发现 iOS 有 NSClassFromStringobjc_getclass

经过几次尝试,我可以说 NSClassFromString 非常好,因为我可以在 plist 和 bam 中预先说出我想要的类!我们开始了。之后设置对象属性是用 KeyValue 字典完成的,这一切都像变魔术一样完成。

我的问题是,如果您要以这种方式创建对象,我该如何调用类方法(以 + 开头的方法)?我查阅了文档,发现有 NSSelectorFromString()。但它不是针对实例而不是类吗?

最佳答案

NSClassFromString 返回类对象而不是类的实例。例如:

Class dateClass = NSClassFromString(@"NSDate"); //get the class object

NSDate *dateInstance = [dateClass date]; //call a class method on the class object

关于ios - iPhone 中的运行时类创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4967219/

相关文章:

iphone - 如何更改按钮上的图像集

objective-c - iOS:从 Storyboard 中唯一标识 ViewControllers

c - 变量初始化计算结果出乎意料

iphone - 从多个变量类型中创建一个对象

ios - 导航到 NSObject 类型类中的 View Controller

ios - presentLocalNotificationNow 和 scheduleLocalNotification 的区别

ios - XCode:UIWebView 邮件链接不工作?

ios - 如何在 Swift 中将 NSDictionary 转换为 NSObject?

java - Nim 游戏再次出错

java - 从 Java 运行 SQLscript 文件