initWithDictionary:在Objective-C和Swift中

索菲达

在Objective-C中,我们可以像这样将对象映射与json响应一起使用

 PolicyData *policyData = [[PolicyData alloc] initWithDictionary:responseObject error:&err];

在这里,我们可以将responseObject与PolicyData类属性进行映射。我如何在Swift中做同样的事情?

迈克尔·道特曼

它应该像添加桥接标头一样容易(因为PolicyData可能是用Objective-C编写的)。有关如何执行此操作的说明,请参阅此Apple文档

然后,您可以像创建PolicyData对象一样容易地创建该对象:

do {
    let newPolicyDataObject = try PolicyData(responseObject)
} catch error as NSError {
    print("error from PolicyData object - \(error.localizedDescription)")
}

假设您responseObject是NSDictionary。Swift 2很有帮助(?)将错误参数转换为try / catch块。

也就是说,PolicyData的

- (instancetype) initWithDictionary:(NSDictionary *)responseObject error:(NSError *)err;

宣言神奇地变成

func initWithDictionary(responseObject : NSDictionary) throws

本Apple Objective-C / Swift互操作性文档“错误处理”部分所述。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章