Почему я получаю «[UITextField hasText]: нераспознанный селектор»? - PullRequest
0 голосов
/ 09 января 2012

На iPad под управлением iOS 4.3.5 я получаю эту ошибку:

MonoTouch.Foundation.MonoTouchException: Objective-C exception thrown.  Name: NSInvalidArgumentException Reason: -[UITextField hasText]: unrecognized selector sent to instance 0x6f692d0
  at MonoTouch.UIKit.UITextField.get_HasText () [0x00000] in <filename unknown>:0

И, действительно, глядя на документацию Apple, нет "hasText" для UITextField.Но это работает, по крайней мере, на устройствах iOS5.Что здесь происходит?MT - 5.0.1, а цель развертывания - 4.3.Этот селектор новый в iOS 5?Но почему не документировано?

Рене

Ответы [ 2 ]

1 голос
/ 09 января 2012

Шиван прав - HasText - вещь MonoTouch.

Вот одно место, где указан HasText (он был введен в MonoTouch между 4.2 и 5.0): http://ios.xamarin.com/Releases/MonoTouch_5/API-diff-from-4.2

Если вы хотите HasText, вам нужно запустить на iOS 5.0 и новее.

0 голосов
/ 09 января 2012

Свойство HasText происходит из протокола iOS5 UIKeyInput:

http://developer.apple.com/library/IOs/#documentation/UIKit/Reference/UIKeyInput_Protocol/Reference/Reference.html

Какой UITextField принимает:

http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextField_Class/Reference/UITextField.html

Именно поэтомувы видите это свойство в UITextField.

Мы хотим добавить проверки либо в Gendarme, в IDE, либо в компилятор, чтобы помечать методы, которые были введены только в определенных версиях.В библиотеках есть эта информация, просто она сейчас не используется.

...