swift - 尝试从字符串中检索随机字母时出现段错误

标签 swift string swift3 segmentation-fault arc4random

我有这个功能:

func getRandomLetter() -> String {
    let len = allPossibleLetters.characters.count
    let r = arc4random_uniform(UInt32(len))
    let index = allPossibleLetters.index (allPossibleLetters.startIndex, offsetBy: r)
    return String(allPossibleLetters[index])
}

但是我在尝试编译时不断收到以下错误:

Command failed due to signal: Segmentation fault: 11

当我将整数硬编码到 offsetBy 参数中时,它工作正常:

let index = allPossibleLetters.index (allPossibleLetters.startIndex, offsetBy: 11)
// returns a letter as expected

知道是什么原因造成的吗?

最佳答案

似乎是传递了错误类型的问题:

let index = allPossibleLetters.index(allPossibleLetters.startIndex, offsetBy: Int(r))

对于这些分段问题,如果您单击该错误,它将带您查看错误详细信息。通常该日志的最后部分是最有趣的。 在你的情况下,它说:

While type-checking expression at RangeText="allPossibleLetters.index(allPossibleLetters.startIndex, offsetBy: r)"

关于swift - 尝试从字符串中检索随机字母时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43927224/

相关文章:

c - 字符数组索引问题

python - 删除python中字符串中数字之间的空格

ios - Swift 3 在没有 Storyboard 的情况下实现 SideMenu 控件(硬编码)

c - 没有 strcmp() 的字符串比较

ios - 为什么当我点击推送通知并快速移动 ViewController 时状态栏消失

ios - Swift - 启动屏幕 SIGABRT 错误

swift - UIAlertController 错误

ios - UICollectionView 包括 2 个部分,其中一个是 gird,另一个是 list - swift

ios - Swift - 圆角类未应用于所有 UIView

ios - NSURL 不会从字符串初始化为远程字体文件 (.TTF)