NSUserActivity切换不适用于自定义数据

Cla*_*sen 10 objective-c ios handoff ios8.1 nsuseractivity

我正试图在iPhone和iPad之间测试iOS 8.1切换功能和NSUserActivity.为此,我尝试了实现自己的解决方案,并使用Apple的PhotoHandoff项目.但是,它不起作用.

如果我提供了一个webpageURL,切换工作正常,但是当我尝试使用userData或者addUserInfoEntriesFromDictionary实在不行,我不能为我的生活出美中不足的是什么使数据的工作.

示例代码:

NSUserActivity *activity = [[NSUserActivity alloc] initWithActivityType:@"com.company.MyTestApp.activity"];
activity.title = @"My Activity";
activity.userInfo = @ {};
//    activity.webpageURL = [NSURL URLWithString:@"http://google.com"];

self.userActivity = activity;

[self.userActivity becomeCurrent];
[self.userActivity addUserInfoEntriesFromDictionary:@ { @"nanananan": @[ @"totoro", @"monsters" ] }];
Run Code Online (Sandbox Code Playgroud)

(我也无法使用具有相应活动类型的Mac应用程序)

HiD*_*Deo 2

要更新活动对象\xe2\x80\x99s userInfo 字典,您需要在 userInfo 需要更新时配置其委托并将其 needSave 属性设置为 YES。

\n\n

采用切换指南的最佳实践部分描述了此过程。

\n\n

例如,对于一个简单的 UITextView,您需要在 Info.plist 属性列表文件中的 NSUserActivityTypes 数组中指定活动类型(“com.company.app.edit”)标识符,然后:

\n\n
- (NSUserActivity *)customUserActivity \n{\n    if (!_customUserActivity) {\n        _customUserActivity = [[NSUserActivity alloc] initWithActivityType:@"com.company.app.edit"];\n        _customUserActivity.title = @"Editing in app";\n        _customUserActivity.delegate = self;\n    }\n\n    return _customUserActivity;\n}\n\n- (void)textViewDidBeginEditing:(UITextView *)textView \n{\n    [self.customUserActivity becomeCurrent];\n}\n\n- (void)textViewDidChange:(UITextView *)textView \n{\n    self.customUserActivity.needsSave = YES;\n}\n\n- (BOOL)textViewShouldEndEditing:(UITextView *)textView \n{\n    [self.customUserActivity invalidate];\n\n    return YES;\n}\n\n- (void)userActivityWillSave:(NSUserActivity *)userActivity \n{\n    [userActivity addUserInfoEntriesFromDictionary:@{ @"editText" : self.textView.text }];\n}\n
Run Code Online (Sandbox Code Playgroud)\n