如何将Swift程序转为Objective-C?求助转换这段JSON解析代码
没问题!作为Objective-C新手,确实会有点不适应它的语法和错误处理逻辑,我把你这段Swift代码转换成对应的Objective-C版本,还会给你拆解关键部分,帮你更快理解:
转换后的Objective-C代码
NSError *error = nil; id myJSON = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error]; if (error) { NSLog(@"解析错误: %@", error.localizedDescription); } else { if ([myJSON isKindOfClass:[NSDictionary class]]) { NSDictionary *parseJSON = (NSDictionary *)myJSON; NSString *msg = parseJSON[@"message"]; if (msg) { NSLog(@"%@", msg); } else { NSLog(@"未找到message字段"); } } else { NSLog(@"解析结果不是字典类型"); } } [task resume];
关键差异说明
- 错误处理方式:Objective-C不像Swift用
do-catch,而是通过传递NSError指针的方式获取错误信息,解析失败时error对象会被赋值 - 类型检查与转换:需要用
isKindOfClass:判断解析结果的类型,再做强制类型转换,避免类型不匹配导致崩溃 - 空值处理:Objective-C里对象可以为
nil,所以获取message后要先检查是否为nil,再进行后续操作 - 选项参数:Swift里的
.MutableContainers对应Objective-C的NSJSONReadingMutableContainers枚举值
内容的提问来源于stack exchange,提问作者Mohamed Ali
相关产品推荐
相关产品推荐

