我实施了StringLiteralConvertible,扩展了ExtendedGraphemeClusterLiteralConvertible.看起来它也希望我实现它.然而,当我这样做时,Xcode说它不知道是什么ExtendedGraphemeClusterLiteralType.我不确定它对我有什么要求......
extension NSURL : StringLiteralConvertible {
class func convertFromStringLiteral(value: StringLiteralType) -> Self {
return self(string: value)
}
class func convertFromExtendedGraphemeClusterLiteral(value: ExtendedGraphemeClusterLiteralType) -> Self {
// Use of undeclared type ExtendedGraphemeClusterLiteralType :( ?
}
}
let url : NSURL = "http://apple.com"
Run Code Online (Sandbox Code Playgroud)
该问题与您的扩展不符合协议有关。如果您 CMD+单击 StringLiteralConvertible 协议,按照它的定义,您会发现类型别名 StringLiteralType 和类型别名 ExtendedGraphemeClusterLiteralType 设置为 String。
话虽这么说,您应该将您的扩展修改为以下内容:
extension NSURL : StringLiteralConvertible {
class func convertFromStringLiteral(value: String) -> Self
{
//do what you were going to do
return self()
}
class func convertFromExtendedGraphemeClusterLiteral(value: String) -> Self{
//do what you were going to do
return self()
}
}
Run Code Online (Sandbox Code Playgroud)
有关 typealias 的信息在《The Swift Programming Language》一书第 606-609 页的Associated Types部分中进行了描述。
| 归档时间: |
|
| 查看次数: |
1804 次 |
| 最近记录: |