Не могу прикрепить изображение к MFMessageComposeViewController

Я делаю следующее, но при входе в систему всегда возвращается, что изображение не может быть прикреплено. Что здесь не так?

- (void)showInvitation {

if (![MFMessageComposeViewController canSendText]) {

    UIAlertView *warningAlert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Your device doesn't support SMS!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [warningAlert show];
    return;
}

NSString *message = [NSString stringWithFormat:@"Download this game!"];
MFMessageComposeViewController *messageController = [[MFMessageComposeViewController alloc] init];
messageController.messageComposeDelegate = self;
[messageController setBody:message];

if ([MFMessageComposeViewController canSendAttachments]) {
    NSLog(@"Attachments Can Be Sent.");
    NSData *imgData = [NSData dataWithContentsOfFile:@"water"];
    BOOL didAttachImage = [messageController addAttachmentData:imgData typeIdentifier:(NSString *)kUTTypePNG filename:@"image.png"];

    if (didAttachImage) {
        NSLog(@"Image Attached.");

    } else {
        NSLog(@"Image Could Not Be Attached.");
    }
}

[self presentViewController:messageController animated:YES completion:nil];
}

2 ответа

Решение

Как обсуждалось в комментариях, используйте addAttachmentURL:withAlternateFilename:, Я думаю, что NSData объект, который вы предоставляете, не соответствует kUTTypePNG набрать и добавить вложение не удается.

Пожалуйста, попробуйте этот код. Это работает нормально для меня.

 if (MFMessageComposeViewController.canSendText()) {


            let controller = MFMessageComposeViewController()

controller.body = "Solution of broken image in composer while sending through MFMessageComposserViewController "


            controller.messageComposeDelegate = self

            if image.imageAsset != nil {

                let imageData = UIImageJPEGRepresentation(self.fixOrientation(img: image), 1)  //! as NSData
                controller.addAttachmentData(imageData! , typeIdentifier: "image/.jpeg", filename: "image.jpeg")

            }

            self.present(controller, animated: true, completion: {
                completion(true)
            })


        }
        }
Другие вопросы по тегам