Ich habe Probleme beim Implementieren einer NSUserActivity mit einem MapItem aus meiner App.NSUserActivity für Richtungen funktioniert nicht
Alles, was ich möchte in der Lage sein in der App-Switcher die „Route berechnen“ Vorschlag zu verwenden, wie Foursquare tut:
Ich bin in meinem viewDidLoad
Methode den folgenden Code verwenden, in der View-Controller, der den Standort (eine Kneipe) anzeigt, die ich registrieren möchte.
NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:@"co.pubmapper.ViewPub"];
CLLocationCoordinate2D coords = CLLocationCoordinate2DMake(self.pub.lat, self.pub.lng);
MKPlacemark *placemark = [[MKPlacemark alloc] initWithCoordinate:coords];
MKMapItem *mapItem = [[MKMapItem alloc] initWithPlacemark:placemark];
[mapItem setName:self.pub.name];
activity.mapItem = mapItem;
// not sure any of these are necessary for my use case
[activity setEligibleForSearch:YES];
[activity setEligibleForHandoff:YES];
[activity setEligibleForPublicIndexing:YES];
[activity becomeCurrent];
Wenn dies läuft ich folgend in der Konsole sehen:
[main] sendUserActivityToServer, called on activity C626E4B1-ADF8-49D8-80FB-C773DB71243D after it had been invalidated, so doing nothing.
Welche mein activity
Artikel legt nahe, aus irgendeinem Grunde sofort für ungültig erklärt werden. Ich fügte das folgende hinzu, um die expirationDate
einzustellen, aber immer noch die gleiche Nachricht in der Konsole.
activity.expirationDate = [NSDate distantFuture];
Soweit ich ich habe
https://developer.apple.com/reference/foundation/nsuseractivity?language=objc hier in der Dokumentation gefolgt alles erzählen kannIch habe auch meine Tätigkeit Typ NSUserActivityTypes
hinzugefügt, obwohl ich denke, das ist für den Start meiner App nur unbedingt erforderlich ist, und ein Aktivitätsobjekt erhalten, um das es mich gerade nicht geht.
GELöST: basierend auf richtige Antwort von @raidfive unten, activity
ist jetzt ein Klasse-Hotel mit einem starken Bezug:
@property (strong) NSUserActivity *activity;
...
[_activity becomeCurrent];
BINGO! Danke vielmals. Ich hatte das irgendwann gelesen, aber wahrscheinlich nur als relevant für volle Spotlight-Suchergebnisse abgetan. Es scheint, dass es auch für diesen Anwendungsfall benötigt wird. Prost! –
Super! Froh zu hören. – raidfive