Ben*_*riu 19 mms uti ios mfmessagecomposeviewcontroller ios7
我想在iOS7上将图像附加到MMS上.我写了以下代码:
MFMessageComposeViewController *messageController = [[MFMessageComposeViewController alloc] init];
messageController.messageComposeDelegate = self;
NSData *imgData = [NSData dataWithContentsOfFile:@"blablabla"];
BOOL didAttachImage = [messageController addAttachmentData:imgData typeIdentifier:@"public.data" filename:@"image"];
if (didAttachImage)
{
// Present message view controller on screen
[self presentViewController:messageController animated:YES completion:nil];
}
else
{
UIAlertView *warningAlert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Failed to attach image"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[warningAlert show];
return;
}
Run Code Online (Sandbox Code Playgroud)
问题是,当显示SMS屏幕时,它无法识别图像,也无法发送.我看到这样的事情:

我相信这与我发送的imgData或者typeIdentifier有关.
注意:我尝试了几乎所有可能的typeIdentifiers:@"public.data",@"public.image",@"public.item",...等没有工作.
有人可以帮帮我吗?你使用的typeIdentifier是什么?我在iPhone 5,iOS 7.0.2上测试.
谢谢.
解:
正如Greg指示的那样,这解决了我的问题:将文件名设置为@"image.png",将typeIdentifier设置为kUTTypePNG.
[messageController addAttachmentData:imgData typeIdentifier:(NSString *)kUTTypePNG filename:@"image.png"];
Run Code Online (Sandbox Code Playgroud)
谢谢格雷格.
Gre*_*reg 35
MFMessageComposeViewController希望附件具有您正在上传的图像类型的正确扩展名.我通过测试PNG文件进行了验证,以及添加附件数据的以下变体:
[messageController addAttachmentData:imgData typeIdentifier:@"public.data" filename:@"image"];
[messageController addAttachmentData:imgData typeIdentifier:@"public.data" filename:@"image.abc"];
[messageController addAttachmentData:imgData typeIdentifier:@"public.data" filename:@"image.png"];
Run Code Online (Sandbox Code Playgroud)
只有最后一个选项有效.我不需要更改typeIdentifier,尽管选择与数据类型匹配的UTI可能是有意义的.
完整的UTI列表可在此处获得:系统声明的统一类型标识符(感谢@iWasRobbed!)