gpt4 book ai didi

swift - NSRange 从第一次出现到字符串结束

转载 作者:搜寻专家 更新时间:2023-10-31 23:00:07 25 4
gpt4 key购买 nike

我正在努力尝试生成一个有效的 NSRange,它似乎不应该这么复杂,所以我猜我使用了错误的方法。这是我正在尝试做的事情:

我有一个字符串,其中包含一些 unicode 字符:

"The quick brown fox\n❄jumped\n❄over the lazy dog"

我想创建一个从该字符到字符串末尾的 NSRange,同时我可以获得该字符第一次出现的相应索引:

text.rangeOfString("❄")?.startIndex

我似乎无法以一致的格式获取字符串的结尾(我可以传递给 NSMakeRange 的东西)来实际生成范围。这看起来应该很简单,但我已经被困了一个多小时试图弄清楚如何让它工作,我一直以 Index 结尾。我无法转换为整数以转换回 NSMakeRange 的第二个元素所需的长度的类型。

理想情况下我会做这样的事情(由于不兼容和不可转换的类型(Index vs Int),这是无效的):

let start = text.rangeOfString("❄")?.startIndex
NSMakeRange(start, text.endIndex - start)

我正在使用 Swift,所以我可以使用 Swift 的 Range<String.Index> ,如果它会让事情变得更容易,虽然它似乎是另一个不同于 NSRange 的范围表示,我不确定两者的兼容性如何(不想遇到 IndexInt 的另一个维度) .

最佳答案

将您的字符串转换为 NSString。

您将能够使用 Foundation 的 .rangeOfString 而不是 Swift 的 .rangeOfString

基金会的将返回一个 NSRange。

但要小心,它与 Swift 的 Unicode 方法不同,NSRange 和 Range 不兼容(尽管有 convert them 的方法)。

关于swift - NSRange 从第一次出现到字符串结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37441712/

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