XCode 8.2.1中的NSURL错误

时间:2017-02-06 22:33:46

标签: ios swift xcode button nsurl

BEGINNER ALERT!请跟我说说我是一个5岁的孩子,因为我是这个平台和语言的新手。我将感激不畏。

我的Xcode项目中有以下代码,可以通过应用主页上的按钮在本机浏览器中打开网站:

b

在线:

@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"]; 符号之间加;。我知道有些新的Xcode和Swift格式已被弃用,但我找不到这个特定问题的简单答案。提前感谢您的智慧。

更新

感谢那些帮助过这个的人们。如果其他人遇到此问题,这里的代码最终会触摸按钮并在本机浏览器中打开一个URL:

@

我还必须删除ViewController中的原始按钮和相应的引用,替换按钮,并与ViewController建立新的连接以使其正常工作。非常感谢!

3 个答案:

答案 0 :(得分:0)

首先: faceURL openURL spotiURL应该是let spotiURL = URL(string: "https://www.facebook.com") UIApplication.shared.openURL(spotiURL!)

第二:您的意思是将您从SO中复制的代码从Obj-C转换为Swift,我会为您做的:)

{{1}}

答案 1 :(得分:0)

嗯,你正在混合Swift(第一行)和ObjC(所有其他的)语法,所以你必须先选择其中一个。你的"混合"代码看起来不错。

答案 2 :(得分:0)

看起来你正试图在Swift方法中使用Objective C代码。如果您的项目是用Swift编写的,那么这可能是(可能)您需要的代码:

classdef    ::=  [decorators] "class" classname [inheritance] ":" suite
inheritance ::=  "(" [argument_list] ")"
classname   ::=  identifier

我建议您通过一些教程来学习iOS开发的基础知识。