来自字符串

时间:2016-04-19 18:51:44

标签: swift

我的代码中有一个奇怪的错误。我在Swift中构建了一个iOS应用程序。 该代码包含以下函数:

func generateAttrString(path: String?) {
    do {
        let content = try String(contentsOfFile: path!, encoding: NSUTF8StringEncoding)
        let array = content.componentsSeparatedByString("\n¶")
        let attrStyle = NSMutableParagraphStyle()
        attrStyle.lineSpacing = 8
        attrStyle.paragraphSpacing = 12

        for element in array {
            var string = element
            var attributes = [
                NSParagraphStyleAttributeName: attrStyle,
                NSFontAttributeName: UIFont(name: "MyriadPro-Light", size: 17.0)!
            ]

            var attrString = NSMutableAttributedString(string: string, attributes: attributes)
            if string[string.startIndex] == "•" {
                string.removeAtIndex(string.startIndex)
                attributes[NSFontAttributeName] = UIFont(name: "MyriadPro-Regular", size: 17.0)!

                let newAttrStyle = attrStyle.mutableCopy() as! NSMutableParagraphStyle
                newAttrStyle.paragraphSpacing = 3
                newAttrStyle.lineSpacing = 0
                attributes[NSParagraphStyleAttributeName] = newAttrStyle

                attrString = NSMutableAttributedString(string: string, attributes: attributes)
            }


            contentArray.append((false, attrString))
        }

    } catch _ {
    }
}

在特定部分:

if string[string.startIndex] == "•" {

它给了我一个错误,我之前尝试添加一个断点,并尝试打印" string",这使我返回了字符串。之后我尝试了字符串[string.startIndex] =="•",它返回true。但是现在如果我运行代码并尝试打开运行此代码的页面,我会收到以下错误:

致命错误:无法从空字符串中形成字符

关于如何解决这个问题的任何想法?字符串似乎不是空的......

谢谢!

1 个答案:

答案 0 :(得分:4)

如果您有一个空字符串,您将看到该错误。如果你先测试以确保字符串不是空的,你应该没问题。

if !string.isEmpty && string[string.startIndex] == "•"  {
相关问题