Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 开关必须详尽无遗/无法找到';JSON';范围内_Ios_Json_Swift_Alamofire_Xcode12 - Fatal编程技术网

Ios 开关必须详尽无遗/无法找到';JSON';范围内

Ios 开关必须详尽无遗/无法找到';JSON';范围内,ios,json,swift,alamofire,xcode12,Ios,Json,Swift,Alamofire,Xcode12,伙计们! 我的应用程序又一次崩溃了,我不知道该怎么办。有人能帮忙吗?! 顺便说一句,我是初学者。。我在学习。求你了,仁慈点 请求(URL\u USER\u ADD,方法:.post,参数:body,编码:JSONEncoding.default,headers:header).responseJSON{(响应)in 查看错误的图像 谢谢 你的应用程序没有崩溃。它无法编译 “开关必须是详尽的”表示您没有处理所有可能出现的响应的情况。结果。因为您的代码片段不包含上下文,我只能根据自己的经验和您提供的

伙计们! 我的应用程序又一次崩溃了,我不知道该怎么办。有人能帮忙吗?! 顺便说一句,我是初学者。。我在学习。求你了,仁慈点

请求(URL\u USER\u ADD,方法:.post,参数:body,编码:JSONEncoding.default,headers:header).responseJSON{(响应)in

查看错误的图像

谢谢


你的应用程序没有崩溃。它无法编译

开关
必须是详尽的”表示您没有处理所有可能出现的
响应的情况。结果
。因为您的代码片段不包含上下文,我只能根据自己的经验和您提供的
响应的代码进行猜测。结果
是一个快速的
结果
。在这种情况下,除了
。成功(\ux)
您还必须处理
。故障(\ux)

switch response.result
{
案例。成功(让结果):
//您已经拥有的代码-稍后会有更多关于这方面的内容
//丢失的东西
案例。失败(let错误):
//在这里做一些对你的应用程序有意义的错误处理
}
所以这是第一件事,但是你也有一个错误,
JSON
没有定义。事实上,我在你的屏幕截图或代码片段中没有看到它的定义,但可能它(或你想提到的类似东西)的定义超出了我所能看到的范围

如果它在您正在使用的框架(或Swift包)中,请确保在文件顶部导入该框架。或者您是否打算使用
Foundation
JSON转换工具(
JSONSerialization
JSONDecoder

补遗 根据评论中的对话,我认为这就是你想要做的:

switch response.result
{
案例。成功(让结果):
guard let json=try?json(数据:结果)else{fallthrough}
让id=json[“_id”].stringValue
让color=json[“avatarColor”].stringValue
让avatarName=json[“avatarName”].stringValue
让email=json[“email”].stringValue
让name=json[“name”].stringValue
UserDataService.instance.setUserData(id:id,color:color,avatarName:avatarName,email:email,name:name)
完成(真)
案例失败(let错误)
完成(假)
debugPrint(response.result,如有)
}

你的应用程序没有崩溃。它无法编译

开关
必须是详尽的”表示您没有处理所有可能出现的
响应的情况。结果
。因为您的代码片段不包含上下文,我只能根据自己的经验和您提供的
响应的代码进行猜测。结果
是一个快速的
结果
。在这种情况下,除了
。成功(\ux)
您还必须处理
。故障(\ux)

switch response.result
{
案例。成功(让结果):
//您已经拥有的代码-稍后会有更多关于这方面的内容
//丢失的东西
案例。失败(let错误):
//在这里做一些对你的应用程序有意义的错误处理
}
所以这是第一件事,但是你也有一个错误,
JSON
没有定义。事实上,我在你的屏幕截图或代码片段中没有看到它的定义,但可能它(或你想提到的类似东西)的定义超出了我所能看到的范围

如果它在您正在使用的框架(或Swift包)中,请确保在文件顶部导入该框架。或者您是否打算使用
Foundation
JSON转换工具(
JSONSerialization
JSONDecoder

补遗 根据评论中的对话,我认为这就是你想要做的:

switch response.result
{
案例。成功(让结果):
guard let json=try?json(数据:结果)else{fallthrough}
让id=json[“_id”].stringValue
让color=json[“avatarColor”].stringValue
让avatarName=json[“avatarName”].stringValue
让email=json[“email”].stringValue
让name=json[“name”].stringValue
UserDataService.instance.setUserData(id:id,color:color,avatarName:avatarName,email:email,name:name)
完成(真)
案例失败(let错误)
完成(假)
debugPrint(response.result,如有)
}

第一个屏幕显示的是教师代码:

第二个是我的,因为我拒绝将错误作为响应的属性:
第一个屏幕显示的是教师代码:

第二个是我的,因为我拒绝将错误作为响应的属性:

add case.failure你的应用程序没有崩溃,你的应用程序没有编译。add case.failure你的应用程序没有崩溃,你的应用程序没有编译。明白了。所以切换必须不仅仅是一个失败或成功,必须是两个。好吧!当我在观看在线课程时,老师说我们数据,因为JSON的作用是它从响应数据。让json=json(数据:数据)JSON假设是一个初始化器,使用“import SwiftyJSON”,但仍然失败。一般来说,
开关
必须处理所有可能打开的情况。对于
枚举
类型,即
结果
而言,这通常意味着显式处理每个情况,但对于
字符串
之类的某些事情,通常需要e包含一个
默认值
案例。失败的原因是与以前相同的错误?还是其他原因?否是不同的,它说:let json=json(data:data)XCall可以抛出,但它没有标记为“尝试”,错误也没有被处理。我很震惊。哈哈,没有错误!它成功了!非常感谢。这是一个很好的教训!明白了。所以切换必须不仅仅是一个失败或成功,必须是两个。好吧!正如我在观看在线课程时,老师说的那样
        switch response.result {
              case .success(let result):
                 if let json = result as? Data {
                    guard let data = response.data else { return }
                    let json = JSON(data: data)
                    let id = json["_id"].stringValue
                    let color = json["avatarColor"].stringValue
                    let avatarName = json["avatarName"].stringValue
                    let email = json["email"].stringValue
                    let name = json["name"].stringValue
                    
                    UserDataService.instance.setUserData(id: id, color: color, avatarName: avatarName, email: email, name: name)
                    completion(true)
                 
                 } else {
                    completion(false)
                    debugPrint(response.result as Any)