2016-03-24 1 views
-1

私は以下のプロジェクトhttps://github.com/indragiek/MarkdownTextViewを使用しており、コアデータを有効にしてUITextViewからテキストを保存しています。致命的なエラー:値がSwiftタイプからObjective-Cタイプへのブリッジに失敗しました - フレームワークを使用している場合

viewDidLoadのテキスト属性の一部を変更するまでは、テキストを保存してマークダウンを使用するとすべて問題なく動作します。属性を変更する方法については、GitHubページの例に従っていますが、まだエラーがあります。

ここ

import UIKit 
import CoreData 
import MarkdownKit 

var textStorage: MarkdownTextStorage? 
var textView: MarkdownTextView! 

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.automaticallyAdjustsScrollViewInsets = false 

    var attributes = MarkdownAttributes() 

    let fontFloat = CGFloat(28) 


    attributes.headerAttributes?.h6Attributes = [ 
     NSForegroundColorAttributeName: UIColor.grayColor(), 
     NSFontAttributeName: UIFont(name: "OpenSans", size: 20)! 
    ] 

    attributes.defaultAttributes = [ 
     NSForegroundColorAttributeName: UIColor.blackColor(), 
     NSFontAttributeName: UIFont(name: "OpenSans", size: fontFloat)! 
    ] 

    attributes.strongAttributes = [ 
     NSForegroundColorAttributeName: UIColor.redColor() 
    ] 

    let textStorage = MarkdownTextStorage(attributes: attributes) 


    do { 
     textStorage.addHighlighter(try LinkHighlighter()) 
    } catch let error { 
     fatalError("Error initializing LinkHighlighter: \(error)") 
    } 
    textStorage.addHighlighter(MarkdownStrikethroughHighlighter()) 
    textStorage.addHighlighter(MarkdownSuperscriptHighlighter()) 

    if let codeBlockAttributes = attributes.codeBlockAttributes { 
     textStorage.addHighlighter(MarkdownFencedCodeHighlighter(attributes: codeBlockAttributes)) 
    } 

    textView = MarkdownTextView(frame: CGRectZero, textStorage: textStorage) 
    textView.translatesAutoresizingMaskIntoConstraints = false 
    view.addSubview(textView) 

    let views = ["textView": textView] 
    var constraints = NSLayoutConstraint.constraintsWithVisualFormat("V:|-60-[textView]-8-|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: views) 
    constraints += NSLayoutConstraint.constraintsWithVisualFormat("H:|-8-[textView]-8-|", options: NSLayoutFormatOptions(rawValue: 0), metrics: nil, views: views) 
    NSLayoutConstraint.activateConstraints(constraints) 


    textView.delegate = self 

    userSettings() 

} 

は、時にはそれが

fatal error: unexpectedly found nil while unwrapping an Optional value

はここでどのようにだ、私は次のエラーを取得する罰金だと、すべてのカスタム属性を持つViewController負荷が、他の回、私がやっているものの例ですMarkdownAttributes構造体は、フレームワーク内から属性を設定します。

public var defaultAttributes: TextAttributes = [ 
    NSFontAttributeName: UIFont.preferredFontForTextStyle(UIFontTextStyleBody) 
] 

public var h1Attributes: TextAttributes? = [ 
    NSFontAttributeName: UIFont.preferredFontForTextStyle(UIFontTextStyleHeadline) 
] 

問題は何か、解決方法は誰にも分かりますか?ここで

答えて

1
UIFont(name: "OpenSans", size: 20)! 

はあなただ力アンラップあなたUIFont初期化子は、それがfailable初期化子(init?)として定義されているにもかかわらず、です。おそらくそのフォントが正しくインストールされておらず、この呼び出しはUIFontインスタンスの代わりにnilを返します。私は実際に私がチェックし、テキストに他のラベルを変更したフォントが正しくインストールされている

attributes.headerAttributes?.h6Attributes = [ 
    NSForegroundColorAttributeName: UIColor.grayColor() 
] 

if let font = UIFont(name: "OpenSans", size: 20) { 
    attributes.headerAttributes?.h6Attributes[NSFontAttributeName] = font 
} else { 
    attributes.headerAttributes?.h6Attributes[NSFontAttributeName] = UIFont.systemFontOfSize(20.0) 
} 
+0

:ここ

あなたはnilフォント警戒する方法の例です。私は '!'を削除しましたので、アンラップを強制しませんでしたが、インラインエラー 'オプションの値 'UIFontを取得しましたか?'アンラップされていない。あなたは '!'を使うつもりでしたか?または '?'? ' – RileyDev

+0

@ JKSDEVは、フォントをアンラップするための潜在的な解決策で私の答えを更新しました。 OpenSansが見つからない場合は、システムフォントに戻ります。 – JAL

関連する問題