不建议使用的应用程序:openURL方法-iOS

时间:2018-07-10 16:47:48

标签: 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");

1 个答案:

答案 0 :(得分:2)

较新的委托方法具有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");