我正在研究一个自定义场景,其中我需要在运行时创建一个已定义类的对象并为其设置属性。在 objective-C 中是这样的
//The Model class
@interface Car:NSObject
{
@property(nonatomic,copy) NSString * numberOfDoors;
@property(nonatomic,copy) NSString * carModel;
@property(nonatomic,copy) NSString * carMake;
@property(nonatomic,copy) NSString * carBrand;
}
为上面的类创建一个自定义运行时对象(不确定这是否正确但只是从我的脑海中说出来)
id myNewObject = [[NSClassFromString(@"Car") alloc]init];
[myNewObject setValue:@"4 doors" forKeyPath:@"numberOfDoors"];
[myNewObject setValue:@"Prius" forKeyPath:@"carModel"];
[myNewObject setValue:@"2014" forKeyPath:@"carMake"];
[myNewObject setValue:@"Toyota" forKeyPath:@"carBrand"];
所以我在这里的目的是创建一个对象映射模块,该模块将采用类名和对象映射信息,该信息将描述如何从 JSON 响应映射/创建模型对象(与 RestKit 非常相似,但不包括核心数据)同步部分)。
我知道这可以用 objective-c 来完成,但不确定这如何适用于 swift 类
感谢任何帮助。
最佳答案
我想这就是你想要的:
@objc(MyClass)
class MyClass : NSObject {
var someProperty = 0
}
let type = NSClassFromString("MyClass") as! NSObject.Type
let instance = type()
instance.setValue(12, forKey: "someProperty")
关于ios - 快速动态创建对象和设置属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31145990/