2016-05-06 13 views
19

Xcodeでview debuggerについて学習していて、でデバッグ>ビューデバッグ>キャプチャビュー階層でビュー階層をキャプチャしていました。私は私のアプリでそれをしようとしたときしかし、私は次のエラーを得た:UITextViewのアサーションエラー_firstBaselineOffsetFromTop

Assertion failure in -[UITextView _firstBaselineOffsetFromTop], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3512.60.7/UITextView.m:1683

私は次のような単純なプロジェクトでこれを再現することができます:

import UIKit 
class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let myTextView = UITextView() 
     myTextView.frame = CGRect(x: 50, y: 50, width: 200, height: 100) 
     myTextView.text = "This is a test." 
     view.addSubview(myTextView) 

    } 
} 

私はそれがオートを使用しないことによって引き起こされる可能性があることhereを見ましたレイアウト。これは実際に修正を待つ必要があるバグですか?スウィフトの回避策はありますか?

更新

提案重複は私が午前と同じ問題のように見えます。しかし、その質問とは異なり、私は迅速な回避策を求めています。その質問に対する「答え」は単なるリンク(既に私がすでに持っていたのと同じリンク)でした。私は他の方法を閉じるために投票しています。

+2

[デバッグビューのhierachyを使用することができません]の可能な重複(http://stackoverflow.com/questions/36995770/not-able-to-use-debug-については

@interface UITextView(MYTextView) @end @implementation UITextView (MYTextView) - (void)_firstBaselineOffsetFromTop { } - (void)_baselineOffsetFromBottom { } @end 

view-hierachy) – werediver

答えて

43

DEBUGでこれを行うこの問題を解決する唯一の

回避策を構築します。あなたのプロジェクトでは、カテゴリを下にしてください。それは私のために働いた。迅速

extension UITextView { 
    func _firstBaselineOffsetFromTop() { 
    } 
    func _baselineOffsetFromBottom() { 
    } 
} 
+1

ああ、今理解しています。これは、アサーションの失敗を引き起こしていたメソッドをオーバーライドしています。これらのメソッドが重要な機能を果たしている場合は、その機能を失っていると思いますが、これはビュー階層をキャプチャする必要があるときには非常に便利な回避策です。拡張子(またはカテゴリ)は、後でコメントアウトすることができます。 (私の質問でサンプルプロジェクトでSwiftコードをテストしたところ、動作していることを確認できます) – Suragch

+2

デバッグモードで有効にするには、これを.pchファイル '#ifdef DEBUG #import"に追加します。UITextView + MYTextView.h " #endif' – jpredham

+0

賢明な回避策をありがとう&& Nice Job Apple> =: –