gpt4 book ai didi

swift - NSAttributedString 获取属性越界异常

转载 作者:搜寻专家 更新时间:2023-10-31 08:24:56 31 4
gpt4 key购买 nike

我正在尝试从属性字符串中获取属性。一切正常,除非字符串为空。看一看:

let s = NSAttributedString(string: "", attributes: [NSForegroundColorAttributeName: UIColor.red])
let range = NSMakeRange(0, s.length)
let attrs = s.attributes(at: 0, longestEffectiveRange: nil, in: range)

为什么我在最后一行出现越界异常?

最佳答案

这是预期的结果。如果字符串的长度为 0(“”的情况),则它在索引 0 处没有字符,因此当您尝试使用 s.attributes 访问它时,您可能会遇到越界异常。

因为索引是从0开始的,所以index=0只存在于String.length>0。

您可以使用长度为 1 的字符串并在 s.attributes 中输入 1 来轻松检查这一点。

let s = NSAttributedString(string: "a", attributes: [NSForegroundColorAttributeName: UIColor.red])
let range = NSMakeRange(0, s.length)
let attrs = s.attributes(at: 1, longestEffectiveRange: nil, in: range) //also produces out of bounds error

关于swift - NSAttributedString 获取属性越界异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44202298/

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