При совместном использовании URL-адреса файла с использованием UIActivityViewController возникает утечка памяти - PullRequest
0 голосов
/ 30 мая 2018

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

            NSURL *filePath = [NSURL fileURLWithPath:path];
            UIActivityViewController *vc = [[UIActivityViewController alloc] initWithActivityItems:@[filePath] applicationActivities:nil];
            [self presentViewController:vc animated:YES completion:nil];

утечки показывают в инструментах

enter image description here

Затем я пытаюсь поделиться NSString или NSURL (не URL-адрес файла).Нет утечки памяти.Итак, как я могу поделиться URL файла без утечки памяти?

            NSURL *path = [NSURL URLWithString:@"https://stackoverflow.com/"];
            UIActivityViewController *vc = [[UIActivityViewController alloc] initWithActivityItems:@[path] applicationActivities:nil];
            [self presentViewController:vc animated:YES completion:nil];

Ответы [ 2 ]

0 голосов
/ 15 июня 2018

Из моего исследования в стеке выделения XCode каждый раз, когда я представляю UIActivityViewController для URL-адреса файла, он пропускает около 20-50 CFString объектов, которые содержат единый идентификатор файла.Например, когда я передаю mp3-файл, он содержит "public.mp3".

Я думаю, что они созданы для проверки того, какие установленные приложения могут открывать файл, а какие нет.

Вы должны сообщить об ошибкеотчет, чтобы Apple могла это исправить

0 голосов
/ 30 мая 2018

Можете ли вы попробовать это?

NSURL *filePath = [NSURL fileURLWithPath:path];
UIActivityViewController *vc = [[UIActivityViewController alloc] initWithActivityItems:@[filePath] applicationActivities:nil];
[self presentViewController:vc animated:YES completion:^
{ 
    vc=nil;
}];
[vc release];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...