在Swift 1.1中的NSURL上实现StringLiteralConverable
是一个关于同一主题的老问题,但它适用于Swfit 1.0。在Swift 1.1中,在Swift 1.1中的NSURL上实现StringLiteralConverable,swift,Swift,是一个关于同一主题的老问题,但它适用于Swfit 1.0。在Swift 1.1中,StringLiteralConvertible协议已更改为使用初始值设定项而不是类方法。而且,[NSURL init(string:string)]将成为一个失败的初始值设定项 这是我尝试过的,但它没有在Xcode 6.1中编译 扩展NSURL:StringLiteralConvertible{ 便利公共初始化?(stringLiteral值:String){ self.init(字符串:值) } 便利性公共初始
StringLiteralConvertible
协议已更改为使用初始值设定项而不是类方法。而且,[NSURL init(string:string)]
将成为一个失败的初始值设定项
这是我尝试过的,但它没有在Xcode 6.1中编译
扩展NSURL:StringLiteralConvertible{
便利公共初始化?(stringLiteral值:String){
self.init(字符串:值)
}
便利性公共初始化?(ExtendedGraphimeClusterLiteral值:字符串){
self.init(字符串:值)
}
便利性公共初始化?(unicodeScalarLiteral值:字符串){
self.init(字符串:值)
}
}
协议“StringLiteralConvertible”所要求的初始值设定项不返回可选项,因此是否将?init之后不会有任何帮助(即使XCode本身也建议这样做)。但是NSURL的所有初始值设定项都会返回optionals,因为这些参数可能不会生成有效的URL。您必须在所有自定义NSURL初始值设定项中调用其中一个super.init初始值设定项。因此,不再可能让NSURL实现“StringLiteralConvertible”