Ich habe eine App für iPhone. Jetzt erstelle ich es für iPad neu.UIActivityViewController dauert lange Zeit zu präsentieren
Wenn der Benutzer die Aktionsschaltfläche in der Symbolleiste auswählt, sollte ein Popover mit einer UIActivityViewController
angezeigt werden, aber aus irgendeinem Grund dauert es ungefähr 10 Sekunden, bis es das erste Mal angezeigt wird. Auf dem iPhone dauert es ungefähr eine Sekunde. Es ist derselbe Code außer dem Popover.
Ich habe versucht, das Popover zu deaktivieren, aber es dauert immer noch etwa 10 Sekunden zu zeigen. Hier
ist der Code:
-(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];
}
ich auf meinem iPad getestet haben 3 und mein iPad mini, die beide eine Weile dauern, diese zu präsentieren.
Wie kann ich das Problem lösen?
Haben Sie es mit Zeit-Profiler getestet? Sie können feststellen, welche Anweisungen die meiste Zeit benötigen. –
Nein, wie mache ich das? – Maximilian
Drücken Sie cmd + I und wählen Sie dann time profile.Wait für 10-20 Sekunden. Wählen Sie dann die Option "Systembibliotheken ausblenden". Dadurch können Sie Ihre Methode im Call-Stack besser sehen.Finden Sie Ihre Methode in der Aufrufliste und klicken Sie auf zwei mal darauf sehen Sie den Zeitverbrauch. –