XCode 8.2.1 中的 NSURL 错误
NSURL Error in XCode 8.2.1
初学者注意!请像我是 5-year-old 一样跟我说话,因为我是这个平台和语言的新手。我将不胜感激并且不会被冒犯。
我的 Xcode 项目中有以下代码,用于通过应用程序主页上的按钮在本机浏览器中打开网站:
@IBAction func faceURL(_ sender: Any) {
NSURL *spotiURL = [NSURL URLWithString:@"https://www.facebook.com"];
[[UIApplication sharedApplication] openURL:faceURL options:@{} completionHandler:^(BOOL success) {
if (success){
NSLog(@"Opened url");
}
}];
}
在线:
NSURL *spotiURL = [NSURL URLWithString:@"https://www.facebook.com"];
它抛出以下错误:
Expected "," separator Consecutive statements on a line must be separated by ";"
建议在URL之前的冒号和@
符号之间放置一个;
。我知道其中一些已被新的 Xcode 和 Swift 格式弃用,但我找不到针对此特定问题的直接答案。预先感谢您的智慧。
更新
感谢为此提供帮助的人们。如果其他人遇到此问题,这里是最终用于触摸按钮并在本机浏览器中打开 URL 的代码:
@available(iOS 10.0, *)
@IBAction func openURL(_ sender: Any) {
let openURL = URL(string: "https://www.facebook.com")
UIApplication.shared.open(openURL!, options: [:], completionHandler: nil)
}
我还不得不删除 ViewController 中的原始按钮和相应的引用,替换按钮,并与 ViewController 重新连接以使其正常工作。非常感谢!
首先: 你在 openURL
中有 faceURL
而它应该是 spotiURL
.
其次: 你的意思是将从 SO 复制的代码从 Obj-C 转换为 Swift 我会为你做:)
let spotiURL = URL(string: "https://www.facebook.com")
UIApplication.shared.openURL(spotiURL!)
好吧,您正在混合使用 Swift(第一行)和 ObjC(所有其他)语法,因此您必须首先选择其中一个。顺便说一下,您的 "mixed" 代码看起来不错。
您似乎正试图在 Swift 方法中使用 Objective C 代码。如果您的项目是用 Swift 编写的,那么这(可能)就是您需要的代码:
@IBAction func faceURL(_ sender: Any) {
if let facebookURL = URL(string: "https://www.facebook.com")
{
UIApplication.shared.openURL(facebookURL) // the open method you were using doesn't exist in Swift
}
}
我建议您通过一些教程来学习 iOS 开发的基础知识。
初学者注意!请像我是 5-year-old 一样跟我说话,因为我是这个平台和语言的新手。我将不胜感激并且不会被冒犯。
我的 Xcode 项目中有以下代码,用于通过应用程序主页上的按钮在本机浏览器中打开网站:
@IBAction func faceURL(_ sender: Any) {
NSURL *spotiURL = [NSURL URLWithString:@"https://www.facebook.com"];
[[UIApplication sharedApplication] openURL:faceURL options:@{} completionHandler:^(BOOL success) {
if (success){
NSLog(@"Opened url");
}
}];
}
在线:
NSURL *spotiURL = [NSURL URLWithString:@"https://www.facebook.com"];
它抛出以下错误:
Expected "," separator Consecutive statements on a line must be separated by ";"
建议在URL之前的冒号和@
符号之间放置一个;
。我知道其中一些已被新的 Xcode 和 Swift 格式弃用,但我找不到针对此特定问题的直接答案。预先感谢您的智慧。
更新
感谢为此提供帮助的人们。如果其他人遇到此问题,这里是最终用于触摸按钮并在本机浏览器中打开 URL 的代码:
@available(iOS 10.0, *)
@IBAction func openURL(_ sender: Any) {
let openURL = URL(string: "https://www.facebook.com")
UIApplication.shared.open(openURL!, options: [:], completionHandler: nil)
}
我还不得不删除 ViewController 中的原始按钮和相应的引用,替换按钮,并与 ViewController 重新连接以使其正常工作。非常感谢!
首先: 你在 openURL
中有 faceURL
而它应该是 spotiURL
.
其次: 你的意思是将从 SO 复制的代码从 Obj-C 转换为 Swift 我会为你做:)
let spotiURL = URL(string: "https://www.facebook.com")
UIApplication.shared.openURL(spotiURL!)
好吧,您正在混合使用 Swift(第一行)和 ObjC(所有其他)语法,因此您必须首先选择其中一个。顺便说一下,您的 "mixed" 代码看起来不错。
您似乎正试图在 Swift 方法中使用 Objective C 代码。如果您的项目是用 Swift 编写的,那么这(可能)就是您需要的代码:
@IBAction func faceURL(_ sender: Any) {
if let facebookURL = URL(string: "https://www.facebook.com")
{
UIApplication.shared.openURL(facebookURL) // the open method you were using doesn't exist in Swift
}
}
我建议您通过一些教程来学习 iOS 开发的基础知识。