You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:00:53