web-dev-qa-db-ja.com

Swift 3でURLを宣言する

Swift 3でURLを宣言するにはどうすればよいですか?

これは私の試みたコードです:

var messageURL: URL = URL()

OR

var messageURL: Foundation.URL = URL()

これはエラーです:引数なしで「URL」タイプの初期化子を呼び出すことはできません

Appleからのいくつかのドキュメント(Swift 3.0)は次のとおりです。

NSプレフィックスを削除した後、名前がFoundationタイプと競合するプロパティは、モジュール修飾されたタイプ名になります。たとえば、var URL:NSURLがある場合、var URLとして書き換えられます。 Foundation.URL

23
Albert Ghar

Swift 3にはURL(a struct)とNSURL(ObjCから継承したclass)があります。状況はStringNSStringのようなものです。これに近づくには2つのオプションがあります。

1:宣言時にURLがわかっている場合:

let url = URL(string: "https://www.Apple.com")

2:後でURLについてのみ調べることができる場合:

var url: URL!

// You can check if the variable is initialized by checking it against nil:
//     if url == nil { /* not initialized */ }

// When you are ready to assign it a value:
url = URL(string: "https://www.Apple.com")
69
Code Different

Swift 3に移行したときに同じ問題に直面していましたが、スタックした後、移行前にURLと呼ばれるクラスを作成したことがわかりました。財団のURL構造体と作成の問題。

0
Natanel

In Swift 3 URLには多くの初期化子がありますが、それらはすべて文字列またはデータの引数を取ります。

0