我正在构建一个需要在Facebook上共享的iOS应用程序。我在Xcode(9)上使用Swift(4)。所以我开始使用Facebook官方网页上的文档 - > Facebook Swift SDK
但是,令我惊讶的是,本页中列出的几乎所有示例和其他示例都会出现编译错误。对于例如在此页面上,LinkShareContent
的建议方式如下:
import FacebookShare
let content = LinkShareContent(url: NSURL("https://developers.facebook.com"))
try ShareDialog.show(from: myViewController, content: content)
但是当我将此添加到我的代码中时,我收到了错误 - > Argument labels '(_:)' do not match any available overloads
NSURL
所以看起来Facebook SDK for Swift的文档已经过时了。我对么?如果有,有人可以指导我使用最新版本吗?或者我的其他选择是什么? 如果有人至少可以告诉我当前文档对应的版本,那么至少我可以开始使用旧版本的SDK。
答案 0 :(得分:1)
SDK已针对Swift 4进行了更新,但显然不是文档。从字符串创建NSURL
的正确Swift 4语法需要string
参数标签:
let url = NSURL(string: "https://developers.facebook.com")
您正在查看Facebook的官方文档,因此我不知道在哪里可以为您指出更新的内容。将示例代码重新键入项目可能会有所帮助,这样您就可以从Xcode获得正确的自动完成建议。
编辑:在Swift中,许多带有NS
前缀的类已被没有前缀的类替换。例如,NSURL
已被替换为URL
。 Facebook更新了他们的LinkShareContent
课程,以便在初始化程序中使用URL
:
public init(url: URL, quote: String? = nil)
所以这应该有效:
let content = LinkShareContent(url: URL(string: "https://developers.facebook.com"))
P.S。同样,这就是你应该重新输入他们的示例代码而不是复制/粘贴的原因。只要您输入let content = LinkShareContent(
,Xcode就会告诉您初始值设定项需要URL
而不是NSURL
。