2016-04-19 18 views
0

私のコードに奇妙なバグがあります。私はSwiftにiOSアプリを構築しています。文字列のSwift startIndex

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] == "•"を試しましたが、それは真を返しました。しかし、今、私は、コードを実行すると、このコードは、私は次のエラーを取得する実行しますページを開いてみてください場合:

致命的なエラー:空の文字列からにどのように

任意のアイデアを文字を形成することができませんこれを解決する?文字列が空でないようです...

ありがとう!

答えて

4

空の文字列がある場合は、そのエラーが表示されます。文字列が空でないことを確認するために最初にテストするなら、あなたは大丈夫でしょう。

if !string.isEmpty && string[string.startIndex] == "•" { 
関連する問題