无法为没有参数的“URL”类型调用初始化程序 - Swift 3
Posted
技术标签:
【中文标题】无法为没有参数的“URL”类型调用初始化程序 - Swift 3【英文标题】:Cannot invoke initializer for type 'URL' with no arguments - Swift 3 【发布时间】:2016-12-14 10:04:47 【问题描述】:接收错误:
无法为没有参数的“URL”类型调用初始化程序
以下是代码 -
var databasePath = URL()
我已经全局声明了这个变量。也试过了
var databasePath: URL!
if let url = NSURL().absoluteURL //error 1- Consecutive declarations on a line must be separated by ';'
databasePath = url //error2 - Variable used within its own initial value
如果将上面的代码写成 var databasePath = URL() 的替换,则会收到以上 2 个错误。
我是 Swift 的初学者。请告诉我解决方案。
【问题讨论】:
URL 是不可变的对象。你应该这样做:URL(fileURLWithPath: "/tmp/db")
【参考方案1】:
URL 初始化器必须有一个参数。
基本上有两种:
文件系统中的 URL
let databaseURL = URL(fileURLWithPath:"/path/to/file.ext")
具有显式方案的 URL(例如 http
、ftp
等)
let databaseURL = URL(string:"http://myserver/path/to/file.ext")!
如果保证 URL 有效,则可以解包 (!
),否则使用光学绑定 (if let
)
【讨论】:
【参考方案2】:这样声明url
var url: URL = NSURL() as URL
【讨论】:
【参考方案3】:Swift- 5 种简单的方法
var fileDownloadedURL = URL(string: "")
【讨论】:
以上是关于无法为没有参数的“URL”类型调用初始化程序 - Swift 3的主要内容,如果未能解决你的问题,请参考以下文章
无法使用类型为“()”的参数列表为类型“Int”调用初始化程序
如何解决错误:无法调用类型为 `......` 的参数列表类型为 `...` 的初始化程序?
无法使用类型为“(数字)”的参数列表调用类型“Int”的初始化程序