ios - 已弃用的应用程序 :openURL method - iOS

标签 ios objective-c

application:openURL:sourceApplication:annotation:实例方法在 iOS 10 中被弃用。我无法理解如何使用 application:openURL:options: 将旧方法转换为新方法:

例如,在这个 XCT 测试中。我将如何使用新的 application:openURL:options 调用更新它?

NSObject *someAnnotation = [NSObject new];

XCTAssertNoThrow([self.appDelegate application:self.application
                                     openURL:[NSURL URLWithString:@""]
                           sourceApplication:@"tests"
                                  annotation:someAnnotation],
                 @"Should should not throw an exception");

最佳答案

较新的委托(delegate)方法有 options,它是一个字典,可以替换 sourceApplicationannotation 参数,还可能包含其他键/值.

请参阅 UIApplicationOpenURLOptionsKey 的文档。

你的代码会变成这样:

NSObject *someAnnotation = [NSObject new];
NSDictionary *options = @{
    UIApplicationOpenURLOptionsSourceApplicationKey: @"tests",
    UIApplicationOpenURLOptionsAnnotationKey: someAnnotation
};

XCTAssertNoThrow([self.appDelegate application:self.application
                                 openURL:[NSURL URLWithString:@""]
                                 options:options],
             @"Should should not throw an exception");

关于ios - 已弃用的应用程序 :openURL method - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51270505/

相关文章:

iphone - Objective-C 中动态生成的属性/函数调用

ios - UITextfield稳定性?

IOS:注销使用 CoreText 注册的字体

ios - 重新定位/调整 UIBezierPath 的大小

ios - 异步图像加载不起作用?

IOS 10 UIImagePickerController 委托(delegate)未被调用

ios - 增强现实测量 - iPhone

iphone - 如何从我的代码访问 iPhone 的设置?

ios - UIScrollView 从中心到左右分页

iPhone开发UITextField和UITextViews常见问题