我在应用程序中使用mapItem实现NSUserActivity时遇到了一些麻烦.
我想要的是能够在应用程序切换器中使用"获取方向"建议,就像Foursquare所做的那样:
我在我的viewDidLoad方法中使用以下代码,在视图控制器中显示我想要注册的位置(一个pub).
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];
Run Code Online (Sandbox Code Playgroud)
运行时,我在控制台中看到以下内容:
[main] sendUserActivityToServer, called on activity C626E4B1-ADF8-49D8-80FB-C773DB71243D after it had been invalidated, so doing nothing.
Run Code Online (Sandbox Code Playgroud)
这表明我的activity项目由于某种原因立即失效.我添加了以下内容来设置expirationDate但仍在控制台中获取相同的消息.
activity.expirationDate = [NSDate distantFuture];
Run Code Online (Sandbox Code Playgroud)
据我所知,我已经按照文档中的所有内容进行了操作https://developer.apple.com/reference/foundation/nsuseractivity?language=objc
我还添加了我的活动类型 …