MFMessageComposser вызывает утечку памяти всякий раз, когда я отправляю вложение - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть скрипт Swift 4.2, который отправляет прикрепленное видео с помощью MFMessageCompose.Я замечаю, что каждый раз, когда я отправляю видео, использование памяти увеличивается.Когда я выхожу из MessageView, память не освобождается.Каждый раз, когда я отправляю вложение с помощью MFMessageController, память накапливается.Я запустил отладку, и она сообщает мне об утечках памяти в IOSurface.У меня при нажатии на кнопку открывается окно MFMessage с вложением для отправки.Даже если я отменю это, память показывает увеличение.Память прыгает только до размера вложения, когда я нажимаю эту кнопку.Код, который я использую, приведен ниже.Может кто-нибудь помочь мне выяснить, как освободить эту память, чтобы мое приложение не зависало после нескольких отправок?

// Действие от кнопки на UIViewController для запуска отправки @IBAction func sendMessage (_ sender: Any) {

    func sendSMS(attachment: String) {
        }
    }

    if let vid = self.selectedVideo {
        self.titleLabel.text = vid.videoTitle
        self.descriptionLabel.text = vid.videoDescription
        let requestObj2 = (vid.videoId + ".mp4")
        sendSMS(attachment: requestObj2)

    // Check if the device is capable of sending text message
            guard MFMessageComposeViewController.canSendText() else {
            let alertMessage = UIAlertController(title: "SMS unavailable", message: "Your device is not capable of sending SMS.", preferredStyle: .alert)
            alertMessage.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
            present(alertMessage, animated: true, completion: nil)
            return
        }

        // Prefill the SMS
        let messageController = MFMessageComposeViewController()
        messageController.messageComposeDelegate = self
        messageController.recipients = [" "]
        messageController.body = " "
        print("prefill the SMS")

        //Adding file attachment
        let fileparts = requestObj2.components(separatedBy: ".")
        let filename = fileparts[0]
        let fileExtension = fileparts[1]
        let filePath = Bundle.main.path(forResource: filename, ofType: fileExtension)
        let fileUrl = NSURL.fileURL(withPath: filePath!)
       messageController.addAttachmentURL(fileUrl, withAlternateFilename: nil)

        //Present message view controller on screen
        present(messageController, animated: true, completion: nil)
        print("present message view")

        return
...