gpt4 book ai didi

ios - MFMessageComposeViewController iOS7 添加附件数据 :typeIdentifier:filename: not working

转载 作者:IT王子 更新时间:2023-10-29 08:08:27 25 4
gpt4 key购买 nike

我想在 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;
}

问题是出现短信画面时,无法识别图片,无法发送。我看到这样的东西:

Message Screen

我相信这与我发送的 imgData 或 typeIdentifier 有关。

注意:我尝试了几乎所有可能的类型标识符:@"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"];

谢谢格雷格。

最佳答案

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"];

只有最后一个选项有效。我不需要更改 typeIdentifier,尽管选择与数据类型匹配的 UTI 可能有意义。

UTI 的完整列表可在此处获得:System-Declared Uniform Type Identifiers (感谢@iWasRobbed!)

关于ios - MFMessageComposeViewController iOS7 添加附件数据 :typeIdentifier:filename: not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19170516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com