Приложение вылетает с UITextViewDelegate

Я новичок в программировании iPhone и Objective-C, и у меня возникли проблемы с моим UITextView. У меня есть представление с текстовым представлением в качестве подпредставления. Я создал отдельный класс, который я хочу использовать в текстовом представлении. В моем заголовке для этого класса делегата есть утверждение:

@interface MessageTextViewDelegate : NSObject UITextViewDelegate

с угловыми скобками вокруг UITextViewDelegate. Я также подключил текстовое представление в построителе интерфейса к моему классу делегата, который я создал как объект в построителе интерфейса. Однако когда я запускаю свое приложение и нажимаю на текстовое представление, приложение вылетает.

То же самое происходит, когда я пытаюсь инициализировать экземпляр делегата текстового представления в коде и устанавливать этот экземпляр делегатом текстового представления. Когда у меня нет делегата в моем приложении (т.е. он не подключен в построителе интерфейса или не напечатан в коде), приложение запускается. Однако мне нужен делегат, чтобы я мог выполнить анимированное изменение размера текстового представления при появлении клавиатуры.
Не могли бы вы помочь мне с кодом или с тем, что я должен делать в Interface Builder, чтобы приложение работало с делегатом?

@willcodejavaforfood

Когда я касаюсь поля textView, я получаю следующее сообщение об ошибке:

[Сессия началась 29 августа 2010 г., 17:39:50 -0400.] Загрузка программы в отладчик… GNU gdb 6.3.50-20050815 (версия Apple gdb-962) (сб, 26 июля, 08:14:40 UTC, 2008) Авторские права 2004 Free Software Foundation, Inc. GDB - это бесплатное программное обеспечение, на которое распространяется Стандартная общественная лицензия GNU, и вы можете изменять его и / или распространять его копии при определенных условиях. Введите "показать копирование", чтобы увидеть условия. На GDB нет никаких гарантий. Для получения подробной информации введите "показать гарантию". Этот GDB был сконфигурирован как «i386-apple-darwin». Предупреждение: невозможно прочитать символы для «/System/Library/Frameworks/UIKit.framework/UIKit» (файл не найден). предупреждение: невозможно прочитать символы из "UIKit" (еще не отображены в память). предупреждение: невозможно прочитать символы для «/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics» (файл не найден). предупреждение: невозможно прочитать символы из «CoreGraphics» (еще не отображены в память). Программа загружена. sharedlibrary apply-load-rules все Присоединение к программе: `/ Users / vivek / Library / Application Support / iPhone Simulator / User / Applications / 86E8C2CB-3CB7-4615-BF2F-82F3B8982EB3 / TestApp.app / TestApp ', процесс 1493. kill ошибка при убийстве цели (убийство в любом случае): предупреждение: ошибка в строке 1987 из "/SourceCache/gdb/gdb-962/src/gdb/macosx/macosx-nat-inferior.c" в функции "macosx_kill_inferior_safe": (os / kern ) сбой (0x5x) выйти

Отладчик завершил работу со статусом 0.


person Vivek Subramanian    schedule 29.08.2010    source источник
comment
Сбои с каким сообщением об ошибке?   -  person willcodejavaforfood    schedule 30.08.2010
comment
Привет, willcodejavaforfood, я только что отредактировал свой вопрос, включив в него ошибку. Не могли бы вы взглянуть выше?   -  person Vivek Subramanian    schedule 30.08.2010


Ответы (3)


Обычно UITextView в IB подключается к свойству в классе MessageTextViewDelegate типа UITextView. Это создаст в вашем коде следующее:

@interface MessageTextViewDelegate

     UITextView *myTextView;

@property (nonatomic, retain) IBOutlet UITextView *myTextView;

@implementation MessageTextViewDelegate

@synthesize myTextView

Затем вы связали свой объект текстового представления в IB со свойством myTextView.

person ennuikiller    schedule 29.08.2010
comment
Привет, ennuikiller, я пробовал это сделать, но мое приложение все равно вылетает. Нужно ли мне также инициализировать экземпляр делегата где-нибудь в моем коде? - person Vivek Subramanian; 30.08.2010

судя по сгенерированным ошибкам, похоже, что ваш проект неправильно компилирует приложение. Я бы начал с «очистки» всех целей и сделал полную перекомпиляцию.

person Aaron Saunders    schedule 30.08.2010

Если я правильно понимаю вашу проблему, то это:

Если у вас есть ViewController «A» и у него есть подпредставление с текстовым представлением «B» ...

Чтобы решить вашу проблему, сделайте ViewController «A» своим TextViewDelegate. Тогда вы сможете справиться с вещами.

Ваше здоровье,

Кунджал

person Kunjal    schedule 04.10.2012