gpt4 book ai didi

swift - 在 NSURL 上实现 StringLiteralConvertible

转载 作者:IT王子 更新时间:2023-10-29 05:44:39 27 4
gpt4 key购买 nike

我已经实现了 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"

最佳答案

问题与您的扩展不符合协议(protocol)有关。如果您 CMD+单击 StringLiteralConvertible 协议(protocol),按照它的定义,您会发现类型别名 StringLiteralType 和类型别名 ExtendedGraphemeClusterLiteralType 设置为字符串。

话虽如此,您应该将您的扩展修改为以下内容:

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()
}
}

有关类型别名的信息在“The Swift Programming Language”一书第 606-609 页的关联类型部分下进行了描述。

关于swift - 在 NSURL 上实现 StringLiteralConvertible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24101368/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com