【发布时间】:2014-08-21 23:34:19
【问题描述】:
在我的旧 Obj-C 代码中,我可以声明一个字典,其值是其他类的 Class 类型
NSMutableDictionary *Methods = [[NSMutableDictionary alloc] init];
[Methods setObject:[AuthReturnValue class] forKey:@"Authenticate"];
[Methods setObject:[MyOptions class] forKey:@"GetOptions"];
稍后,根据密钥,我可以将 Class 分配给另一个变量
(在标题中)
Class returnType;
(在实现中):
returnType = (Class)[Methods objectForKey:methodName];
然后我可以使用这个 Class 变量来声明一个相同类型的新变量(在这种情况下,它使用 JSONModel 并使用来自其他地方的 NSDictionary 对其进行初始化)
id<NSObject> result;
result = [[returnType alloc] initWithDictionary:(NSDictionary *)responseObject error:NULL];
这很好也很方便,因为 JSONModel 实现了initWithDictionary,这意味着我可以通过这种方式拉入Class,而无需实例化特定类型。
我不知道如何在 Swift 中做到这一点。
例如,这不起作用:
var result: self.returnType.self()
var result: AnyClass = self.returnType.self
还有几十个变种。
如何在 Swift 中将变量声明为在 AnyClass 对象中定义的 class?还是我做错了?
【问题讨论】:
标签: objective-c swift type-conversion jsonmodel