簡體   English   中英

XCode 8.2.1 中的 NSURL 錯誤

[英]NSURL Error in XCode 8.2.1

初學者警告! 請像我 5 歲的孩子一樣跟我說話,因為我是這個平台和語言的新手。 我會心存感激,不會被冒犯。

我的 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"];

它拋出以下錯誤:

需要“,”分隔符 一行中的連續語句必須用“;”分隔

它建議放置一個; 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 建立新的連接以使其工作。 非常感謝!

看起來您正在嘗試在 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 開發的基礎知識。

第一:你在openURLfaceURL當它應該是spotiURL

第二:您的意思是將從 SO 復制的代碼從 Obj-C 轉換為 Swift,我將為您做:)

let spotiURL = URL(string: "https://www.facebook.com")
UIApplication.shared.openURL(spotiURL!)

好吧,您正在混合使用 Swift(第一行)和 ObjC(所有其他)語法,因此您必須首先選擇其中一個。 順便說一句,您的“混合”代碼看起來不錯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM