我正在使用SendBird向我的应用添加发送图片功能。
开Data
我执行此代码
makeSafe
当imagePicker的sourcetype为:- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
时,此代码很有效。
如果我使用imagePicker发送图像,其源类型为:NSData *imageFileData = UIImageJPEGRepresentation(info[UIImagePickerControllerOriginalImage], 0.5);
NSURL* imagePath = [info objectForKey:@"UIImagePickerControllerReferenceURL"];
NSString* imageName = [imagePath lastPathComponent];
[self.currentChannel sendFileMessageWithBinaryData:imageFileData filename:imageName type:@"image/jpg" size:[imageFileData length] data:nil completionHandler:^(SBDFileMessage * _Nullable fileMessage, SBDError * _Nullable error) {}];
,那么
UIImagePickerControllerSourceTypePhotoLibrary
永远不会被触发。
答案 0 :(得分:1)
据我所知,来自info
的{{1}}词典没有UIImagePickerControllerSourceTypeCamera
的对象。因此,UIImagePickerControllerReferenceURL
和imagePath
必须为imageName
。
nil
需要sendFileMessageWithBinaryData:filename:type:size:data:completionHandler:
不是filename
。因为您生成jpeg数据,所以只需使用nil
作为@"image.jpg"
,如下所示:
filename