我正在拍照并使用captureOutput:didFinishProcessingPhoto
.
我需要将照片 (AVCapturePhoto) 转换为字符串,以便我可以将其以 JSON 格式发送到服务器。我需要先将它存储在 userDefaults 中,然后在最后一个屏幕上检索它并将其添加到 JSON/Dictionary。
我正在做一个我没有开始的项目。我通常会设置完全不同的。无论哪种方式,这都是我现在的问题。
我正在尝试这个:
- (void)captureOutput:(AVCapturePhotoOutput *)output didFinishProcessingPhoto:(AVCapturePhoto *)photo error:(NSError *)error {
if (error != nil){
NSLog(@"%s: %@", "Error in capture process", error.debugDescription);
}
NSData *imageData = [photo fileDataRepresentation];
if (imageData == nil){
NSLog(@"%s", "unable to create image data");
}
NSData *photoData = UIImageJPEGRepresentation([[UIImage alloc] initWithData:imageData], 0.0);
NSString *str = [[NSString alloc] initWithData:photoData encoding:NSUTF16StringEncoding];
// UIImage *image = [[UIImage alloc] initWithData:imageData];
// NSData *imageDataObject = UIImageJPEGRepresentation(image, 0.0);
// NSString *photoString = [[NSString alloc] initWithData:imageDataObject encoding:NSUTF8StringEncoding];
// UIImage *image = [[UIImage alloc] initWithData:imageData];
// NSData *imageDataObject = UIImageJPEGRepresentation(image, 0.0);
// NSString *photoString = [[NSString alloc] initWithData:imageDataObject encoding:NSUTF8StringEncoding];
NSUserDefaults *myDefaults = [NSUserDefaults standardUserDefaults];
[myDefaults setObject:str forKey:@"photo"];
}
注释掉的代码只是失败的尝试。
在swift中,我通过将可编码对象创建为单例(从未将其存储在默认值中)来实现这一点,并在发送数据之前调用此函数:
form.photo = UIImage(data: imageData)?.jpegData(compressionQuality: 0.0)
我在目标c上没有这样的运气。我没有 jpegData 功能....
每次我尝试转换数据时,转换都会失败,并且我会返回 null。为什么?