Zrobiłem aplikację na iPhone'a. Teraz odtwarzam go na iPada.UIActivityViewController potrzebuje dużo czasu, aby zaprezentować
Gdy użytkownik wybierze przycisk akcji na pasku narzędzi, popover powinien pokazać się z numerem UIActivityViewController
, ale z jakiegoś powodu wyświetlenie go po raz pierwszy zajmuje około 10 sekund. Na iPhonie zajmuje to około sekundy. To ten sam kod, poza popover.
Próbowałem wyłączyć popover, ale nadal trwa to około 10 sekund, aby pokazać.
Oto kod:
-(IBAction)Actions:(UIBarButtonItem*)sender
{
if ([activityPopover isPopoverVisible] == YES)
{
[activityPopover dismissPopoverAnimated:YES];
return;
}
UIWebView *currentWebView = ((TabView *)self.tabs[self.currentTabIndex]).webViewObject;
NSString *currentURL = (NSString*)[currentWebView request].mainDocumentURL;
if (currentURL == NULL) return;
BookmarkActivity *bookmarkActivity = [[BookmarkActivity alloc] init];
UIActivityViewController *sharing = [[UIActivityViewController alloc] initWithActivityItems:[NSArray arrayWithObject:currentURL] applicationActivities:@[bookmarkActivity]];
activityPopover = [[UIPopoverController alloc] initWithContentViewController:sharing];
[activityPopover presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
}
Ja testowałem na moim iPadzie 3 i mój iPad mini, zarówno zająć trochę czasu, aby przedstawić ten.
Jak mogę rozwiązać problem?
Czy testowałem to z czasowym profilera? Możesz odkryć, jakie są instrukcje, które trwają przez większość czasu. –
Nie, jak to zrobić? – Maximilian
Wciśnij cmd + I następnie wybierz profiler czasu. Poczekaj 10-20 sekund. Następnie zaznacz opcję "ukryj biblioteki systemowe". Pozwoli ci to zobaczyć lepszą metodę w stosie wywołań.Znajdź swoją metodę w stosie wywołań i kliknij dwa razy na nim, zobaczysz zużycie czasu. –