Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Swift 1.1中的NSURL上实现StringLiteralConverable_Swift - Fatal编程技术网

在Swift 1.1中的NSURL上实现StringLiteralConverable

在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(字符串:值) } 便利性公共初始

是一个关于同一主题的老问题,但它适用于Swfit 1.0。在Swift 1.1中,
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”