我正在使用UIImagePickerController
从设备获取图像。我已执行以下步骤:
获得许可:
隐私权-图片库使用说明-info.plist
UIImagePickerController的实例已创建并显示。代表分配给自己。相机或库选项由UIAlertController提供。
-(void) openGallery {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
picker.allowsEditing = YES;
UIAlertController *actionSheet = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
}]];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Camera" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
// take photo button tapped.
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:picker animated:YES completion:NULL];
}]];
[actionSheet addAction:[UIAlertAction actionWithTitle:@"Photo Library" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
// PhotoLibrary
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:picker animated:YES completion:NULL];
}]];
[self presentViewController:actionSheet animated:YES completion:nil];
}
在委托上,图像已到达,但是当我尝试将其转换为base64后将其上传到服务器时,AFNetworking抛出错误:
错误域= PlugInKit代码= 13“查询已取消” UserInfo = {NSLocalizedDescription =查询已取消}
使用Objective C Xcode 9.3 iOS 11
#pragma mark- UIImagePicker Delegate
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
[picker dismissViewControllerAnimated:YES completion:NULL];
[self.view setUserInteractionEnabled:NO];
[self uploadThemeServiceCall: chosenImage];
}
我尝试创建OS_ACTIVITY_MODE以在环境变量中禁用,但是它不起作用。我尝试了其他可用的解决方案,但仍然无法正常工作。工作正常,但现在不行了。
最佳答案
答:)请确保对象selectedImage不是nil。
B :)使用NSData *imageData = UIImageJPEGRepresentation(imageObject , 1)
将chosenImage
转换为NSData
。使用此imageData作为ur NSUrlRequest
正文。
还请在此处显示功能uploadThemeServiceCall
的代码。