'NSSecureCoding!'在尝试替换闭包参数类型时,不是使用Swift的'NSURL'的子类型。

问题描述 投票:3回答:4
[我正在使用NSItemProvider对象上的 loadItemForTypeIdentifier:options:completionHandler:方法通过iOS 8中的Share扩展程序从Safari中提取URL。

在Objective-C中,此代码编译并运行:

[itemProvider loadItemForTypeIdentifier:(@"public.url" options:nil completionHandler:^(NSURL *url, NSError *error) { //My code }];

但是在Swift中,我得到了“ NSSecureCoding!”当我尝试执行类似操作时,不是“ NSURL”编译错误的子类型:

itemProvider.loadItemForTypeIdentifier("public.url", options: nil, completionHandler: { (urlItem:NSURL, error:NSError!) in //My code })

[如果像NSURL!中那样在NSURL参数类型中添加爆炸,则会出现“无法将表达式的'Void'类型转换为'Void'类型”编译错误。如果我将默认参数键入为NSSecureCoding!,它将进行编译,但阻止/关闭不会运行。

我在做什么错?

我正在使用NSItemProvider对象上的loadItemForTypeIdentifier:options:completionHandler:方法通过iOS 8中的Share扩展程序从Safari中提取url。在Objective-C中,此代码进行编译...

share swift nsurl ios8 ios-app-extension
4个回答
3
投票

2
投票

0
投票

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.