Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)"

本文介绍了一个使用AFNetworking库解析JSON时遇到的具体错误案例,详细展示了错误信息及服务端返回的数据,分析了问题所在并给出了排查方向。

AF解析json出错:

Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x8a8a700 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}

 可打印 NSLog(@"operation: %@", operation.responseString); 服务端返回的结果看看哪里错了 

    [client getPath:nil parameters:nil success:^(AFHTTPRequestOperation *operation,id responseObject)

     {

         NSError *error;

         NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableLeaves error:&error];

         NSLog(@"operation: %@", operation.responseString);

         if (success) {

             success(dict);

         }

     }

             failure:^(AFHTTPRequestOperation *operation,NSError *error)

     {

         NSLog(@"error description:%@",[error description]);

     }];

服务器返回的错误信息:

operation:          ï»¿ï»¿{"Result":"1","name":"full","nick":"bfire","sex":"女","email":"","mobi":"","area":"0401","address":"","like":"","photo":"http://weizhuhai.gotoip55.com/upload/member/photo/0/26.jpg","point":"0","coin":"0"}

可以注意到,Result前有串乱码:




`PHPhotosErrorDomain error 3302` 错误通常表示尝试保存到相册的文件格式不被支持或者文件损坏。下面是一些可能的解决办法: ### 权限问题 确保应用有保存到相册的权限。在 `Info.plist` 中添加 `NSPhotoLibraryAddUsageDescription` 键,并在代码中请求相册权限: ```swift import Photos PHPhotoLibrary.requestAuthorization { status in switch status { case .authorized: // 权限已授权,可以保存到相册 break case .denied, .restricted: print("没有相册保存权限") case .notDetermined: // 权限未确定,等待用户选择 break @unknown default: break } } ``` ### 文件路径和文件完整性问题 确保生成的视频文件路径有效,文件完整。可以在保存之前检查文件是否存在: ```swift if let videoURL = customCameraView.videoOutputURL { if FileManager.default.fileExists(atPath: videoURL.path) { // 文件存在,可以进行保存操作 } else { print("文件不存在") } } ``` ### 视频格式问题 确保生成的视频文件格式是系统相册支持的格式,如 `.mp4`。在 `startRecording` 方法中,文件类型设置为 `.mp4`: ```swift assetWriter = try AVAssetWriter(outputURL: videoOutputURL!, fileType: .mp4) ``` ### 等待视频文件完全生成 在调用 `stopRecording` 之后,确保视频文件已经完全生成,再进行保存操作。可以在 `AVAssetWriter` 的 `finishWriting` 完成回调中保存视频: ```swift assetWriter.finishWriting { if assetWriter.status == .completed { PHPhotoLibrary.shared().performChanges({ PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: videoOutputURL!) }) { success, error in if let error = error { print("保存到相册失败: \(error.localizedDescription)") } else if success { print("保存到相册成功") } } } } ``` ### 检查视频文件是否损坏 可以尝试手动打开生成的视频文件,检查是否能够正常播放。如果视频文件损坏,可能是录制过程中出现问题,需要检查 `AVAssetWriter` 的设置和 `CMSampleBuffer` 的处理。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值