2016-05-06 4 views
19

я узнавал о view debugger в Xcode и захватывая иерархию вида с Debug> Просмотр Debugging> Захват Просмотр иерархии. Однако, когда я попробовал это в моем приложении я получил следующее сообщение об ошибке:отказ Assertion в 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, что это может быть вызвано не используя авто раскладка. Это действительно ошибка, что мы должны ждать исправления? Есть ли быстрое решение?

Update

Предложенный дубликат выглядит как тот же вопрос у меня возникли. Однако, в отличие от этого вопроса, я прошу об обходном пути Swift. «Ответ» на этот вопрос был просто ссылкой (та же ссылка, что и у меня уже выше). Я голосую, чтобы закрыть другой путь.

+2

Возможный дубликат [Не в состоянии использовать вид отладки иерархию] (http://stackoverflow.com/questions/36995770/not-able-to-use-debug- view-hierachy) – werediver

ответ

43

Примечание сделать это в DEBUG строит только

обходной путь для решения этой проблемы. Держите ниже категории в своем проекте. Это сработало для меня.

@interface UITextView(MYTextView) 

@end 

@implementation UITextView (MYTextView) 
- (void)_firstBaselineOffsetFromTop { 

} 

- (void)_baselineOffsetFromBottom { 

} 

@end 

Для быстрой

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

А, я понимаю сейчас. Таким образом, это переопределяет методы, которые вызывают ошибку утверждения. Я полагаю, что если эти методы делают что-то еще важное, вы теряете эту функциональность, но это очень полезное обходное решение при необходимости захвата иерархии представлений. Расширение (или категория) затем можно было бы прокомментировать позже. (Я проверил код Swift с образцом проекта в моем вопросе, и я могу подтвердить, что он работает.) – Suragch

+2

Включить в режиме отладки, только добавив это в ваш .pch-файл '#ifdef DEBUG #import" UITextView + MYTextView.h " # endif' – jpredham

+0

Спасибо за умное обходное решение && Nice Job Apple> =: –

Смежные вопросы