У меня есть скрипт 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