gpt4 book ai didi

ios - 对成员 '+' 的引用不明确 - 尝试在字符串扩展中递增整数变量

转载 作者:搜寻专家 更新时间:2023-11-01 06:52:48 27 4
gpt4 key购买 nike

我在字符串扩展中有以下实例函数:

func numberOfCharactersInATweet(withShortURLLength shortURLLength:UInt, andShortURLLengthHTTPS shortURLLengthHTTPS:UInt) -> NSInteger {
var numCharacters = 0
let stringLength = self.count
self.enumerateSubstrings(in: Range(NSMakeRange(0, stringLength))!, options: NSString.EnumeratingOptions.byComposedCharactersSequences) { (subString, subStringRange, enclosingRange, stop) in
numCharacters = numCharacters + 1
(Ambiguous reference to member '+')
}

return numCharacters
}

我想我知道为什么我会收到那条消息。这是因为我想增加一个整数变量,但该成员“+”在我正在扩展的 String 类中也被定义为连接运算符。我如何知道将“+”成员用于整数?

最佳答案

我怀疑这与任何 + 覆盖有任何关系。即使就目前而言,没有这样的覆盖,我也无法编译您的代码;它似乎是一个非常奇怪的 Swift 版本。通过进行一些更正,我能够在 String 扩展中使用 Swift 5 进行编译:

func numberOfCharactersInATweet(withShortURLLength shortURLLength:UInt, andShortURLLengthHTTPS shortURLLengthHTTPS:UInt) -> NSInteger {
var numCharacters = 0
let stringLength = self.utf16.count
let range = self.startIndex..<self.endIndex
self.enumerateSubstrings(in: range, options: .byComposedCharacterSequences) { (subString, subStringRange, enclosingRange, stop) in
numCharacters = numCharacters + 1
}
return numCharacters
}

但是,您的代码非常奇怪。没有参数(shortURLLengthshortURLLengthHTTPSsubStringsubStringRangeenclosingRangestop) 用于任何事情。正如 Rob Napier 在评论中指出的那样,很难看出这个 String 扩展的目的是什么;你所做的只是计算字符数。这应该是 Objective-C 方法的 Swift 翻译吗?如果是这样,则不需要;如果你只想知道组合 Unicode 中的字符数,那么在现代 Swift 中,就是字符串的 count:

let s = "This is a string 😇 with some emoji in it 🙂."
print(s.count)
print(s.numberOfCharactersInATweet(withShortURLLength: 0, andShortURLLengthHTTPS: 0))
// both give "43"

关于ios - 对成员 '+' 的引用不明确 - 尝试在字符串扩展中递增整数变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55993063/

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